Tag: 配置

CDI – ApplicationScoped但已配置

问题 使用CDI我想生成@ApplicationScoped bean。 另外,我想为注入点提供配置注释,例如: @Target({ElementType.FIELD, ElementType.METHOD, ElementType.PARAMETER}) @Retention(RetentionPolicy.RUNTIME) public @interface Configuration { String value(); } 我不想为每种不同的value可能性写一个单独的生产者。 途径 通常的方法是制作一个制作人并处理注入点注释: @Produces public Object create(InjectionPoint injectionPoint) { Configuration annotation = injectionPoint.getAnnotated().getAnnotation(Configuration .class); … } 因此,bean不再是应用程序作用域,因为每个注入点可能可能不同(生产者的参数注入点不适用于@AplicationScoped注释的生产者)。 所以这个解决方案不起作用。 题 我需要一个具有相同值的注入点获得相同bean实例的可能性。 是否有内置的CDI方式? 或者我是否需要在列表中以某种方式“记住”bean,例如在包含生产者的类中? 我需要的是基本上每个不同value的ApplicationScoped实例。

枚举中的可配置值

我经常在我的代码中使用这个设计来维护可配置的值。 考虑以下代码: public enum Options { REGEX_STRING(“Some Regex”), REGEX_PATTERN(Pattern.compile(REGEX_STRING.getString()), false), THREAD_COUNT(2), OPTIONS_PATH(“options.config”, false), DEBUG(true), ALWAYS_SAVE_OPTIONS(true), THREAD_WAIT_MILLIS(1000); Object value; boolean saveValue = true; private Options(Object value) { this.value = value; } private Options(Object value, boolean saveValue) { this.value = value; this.saveValue = saveValue; } public void setValue(Object value) { this.value = value; } public Object getValue() […]

为可信空间定制Spring Security

服务在可信空间中的网关之后工作(gateWayvalidationOAuth令牌并仅向服务提供唯一的用户ID,其他情况下它重定向以validation服务)。 我想在服务中使用spring security来validationuserId的权限。 所以我添加了CustomUserDetailsService @Service( “的UserDetailsS​​ervice”) 公共类CustomUserDetailsS​​ervice实现UserDetailsS​​ervice { @Autowired(required = false) private ContextSsoActiveProfileIdProvider contextSsoActiveProfileIdProvider; @Autowired private GrantedAuthorityService grantAuthorityService; @覆盖 public User loadUserByUsername(final String username)throws UsernameNotFoundException { //使用身份validation服务validation它,但没有令牌,仅限userId,因此信任网关服务。 返回新用户( 将String.valueOf(contextSsoActiveProfileIdProvider.getSsoActiveProfileId()), “authenticatedWithGateWay” grantedAuthorityService.getGrantedAuthoritiesForCurrentUser() ); } } 其中contextSsoActiveProfileIdProvider.getSsoActiveProfileId()返回uniqueUserId和grantedAuthorityService.getGrantedAuthoritiesForCurrentUser()返回权限。 该服务在受信任区域中启动,因此我已通过下一步方式配置安全性: @EnableWebSecurity @组态 公共类SecurityConfiguration扩展了WebSecurityConfigurerAdapter { @Autowired private UserDetailsS​​ervice userDetailsS​​ervice; @覆盖 protected void configure(HttpSecurity http)抛出Exception { HTTP .authorizeRequests() .antMatchers( “/ **”)permitAll(); […]

SessionFactory始终为null – Spring + Hibernate

我在NullpointerException中的save方法中得到CityDaoImpl 。 似乎sessionFactory没有自动assembly,因为在调试时发现sessionFactory从未在CityDaoImpl注入。 我看了很多答案,但没有一个能解决我的问题。 这是我的HibernateConfig.xml文件: com.testing.bean.City org.hibernate.dialect.MySQLDialect true create true 这是CityDaoImpl.java : public class CityDaoImpl implements CityDao{ @Autowired private SessionFactory sessionFactory; public void setSessionFactory(SessionFactory sessionFactory){ this.sessionFactory = sessionFactory; } public void save(City city){ this.sessionFactory.getCurrentSession().save(city); } } 现在我正在我的dao类上执行unit testing。 但是NPE失败了。 public class TestCityDao { ApplicationContext ctx; @Before public void setup(){ ctx = new ClassPathXmlApplicationContext(“HibernateConfig.xml”); } @Test […]

如何将我的JAR库添加到ubuntu中的tomcat7安装

我正在尝试用tomcat7建立一个ubuntu服务器,我使用basic安装了tomcat7 在ubuntu中sudo apt-get install tomcat7 ,我在我的应用程序中有一些常见的库,比如JSTL和其他东西,所以我想在webserver include文件夹中创建它们。 我在搜索互联网后把它们放在服务器的每个地方,但是永远不会加载,放在哪里的正确位置? 我已经在Windows中完成了它并且它工作得很好,但是在ubuntu它似乎不起作用,或者我应该以其他方式安装tomcat?

Grails与另一个Spring应用程序集成 – dataSource被重载

我目前正在为现有的基于Spring的应用程序构建CRUD工具。 该应用程序作为JAR库包含在Grails应用程序中,似乎工作正常。 为了利用库自己的spring上下文,我曾经通过以下方式加载它: def ctx = new ClassPathXmlApplicationContext( ‘classpath:/applicationContextName.xml’) 在我的服务。 不幸的是,上下文构建了自己的数据源(库的默认值),这是不好的,因为我需要使用Grails中定义的dataSource。 因此,我的解决方案是通过向grails-app \ conf \ spring \ resources.xml文件添加导入,将库的spring配置包含在Grails上下文中。 这似乎有效(因为所有bean都被加载到相同的上下文中,现在我可以使用def variableName直接将bean自动装入我的服务类中。 不幸的是,库的spring配置中定义的dataSource正在重载我的Grails DataSource.groovy文件中定义的dataSource! 有没有什么方法可以告诉Grails首先加载libary的spring配置,然后它被其余的Grails配置覆盖(因此使用Grails的DataSource)? 谢谢你的帮助, 詹姆士 … 作为一个临时措施,我已经删除了依赖性的spring配置文件中的dataSource条目,并且它的bean已经注入了由Grails配置创建的dataSource – 这不是理想的,因为我必须做一个’特殊’构建依赖jar。

如何获得现有版本软件的IzPack tocheck?

我有一个应用程序,我们使用IzPack来创建安装程序。 安装程序在当前状态下工作正常,但是,我需要添加一些function,以便检查是否已安装现有版本的软件。 我知道IzPack使用CheckedHelloPanel支持这个开箱即用,不幸的是它只适用于Windows,因为它似乎依赖于Windows注册表。 有没有办法配置IzPack,以便它能够检测现有的安装 ? 我需要能够检测是否有一个并且仅显示通知用户的消息…如何为用户提供触发现有安装的卸载程序的选项的奖励点。 假设只使用新安装程序安装软件 仅限IzPack:请不要提出替代方案,因为我们现在无法改变 如果你建议使用 ,请包含validation器类的代码示例,因为我已经考虑过这个,但不知道从哪里开始

在Java构建过程中更改常量的最佳方法

我inheritance了一个在Tomcat下运行的Java应用程序(servlets)。 由于历史原因,代码具有不同的“外观和感觉”选项,具体取决于应用程序的部署位置(主要是品牌推广)。 有几个常量控制着这个品牌推广过程,它们具有不同的function,不应该压缩成一个常量(即BRAND,MULTI-LANGUAGE,以及图标和css样式表的位置等)。 目前,开发团队必须手动更改常量(它们至少本地化在一个数据类中并且有详细记录),然后使用ANT重新编译应用程序。 假设至少假设Ant 1.8和Java 6.x,自动化此过程的最佳方法是什么? 我知道使用编译器参数没有任何好的解决方案(就像在C或C ++中可以做到的那样),并且我倾向于使用一些“最好的方法”来编辑包含常量的源文件,或者将它们放入另一个文件中使用ant构建过程将它们交换出来。 我希望有一个结果可以使用像“ant build brand-x”这样的东西,改变品牌会改变结果。 谢谢, -Richard

Eclipse格式化程序保留One-Liners

可以将Eclipse Formatter配置为保持: public Long getId() { return this.id; } 也许将小(一行)定义格式化为单行?

Java:使用哪个配置框架?

我需要决定使用哪个配置框架。 目前我在考虑使用属性文件和XML文件。 我的配置需要有一些原始分组,例如XML格式可能是这样的: value1 value2 value3 value4 或属性文件(类似于log4j.properties): group.abc.param1 = value1 group.abc.param2 = value2 group.def.param3 = value3 group.def.param4 = value4 我需要双向(读写)配置库/框架。 好的function是 – 我可以把不同的配置组读出来作为不同的对象,所以我可以稍后将它们传递到不同的地方,例如 – 读取属于组“abc”的所有内容作为一个对象,将“def”作为另一个对象。 如果那是不可能的,我当然可以在应用程序初始化部分自己将单个配置对象拆分成较小的配置对象。 哪种框架最适合我?