bean -- 3




概述今天的开发中,遇到一个问题:我需要创建某个 jar 包中的一个类对应的 bean,而在实例化这个类的过程中,必须传入我的一个 Service 作为参数,于是我如下创建 bean:@Bean public ServiceFactoryBean techlogServiceFactory() { ServiceFactoryBean factoryBean = new ServiceFactoryBean(); factoryBean.setHandler(new TechlogService()); return factoryBean; }  这样创建虽然是 OK 的,但是问题在于,这样创建的结果将造成传入的 TechlogService 对象不是 Spring 生成的 Bean,因此 TechlogService 中的 @Resource、@Autowire 注解的成员都将无法被注入而成为了 null,这个问题怎么解决呢? 通过 ApplicationContextAware 获取 Spring Bean&
#技术帖    #龙潭书斋    #遗留问题    #java   
概述上一篇日志中,我们介绍了 Spring3.1 开始提供的通过配置来让 Spring 在不同的环境中创建和加载不同的 BeanSpring3.1 新特性 -- 为不同的环境配置不同的 profile事实上,有时我们需要更细粒度的自定义配置,只有当满足某个特定条件时才创建和加载某个 bean,比如某个 bean 依赖于另一个 bean 的创建,如果另一个 bean 没有创建,就忽略当前 bean,或者需要通过环境变量来动态控制某个 bean 是否需要被创建 条件化配置 bean -- @Conditional 注解Spring4 引入了一个新的 @Conditional 注解,他可以用在带有 @Bean 注解的方法上,只有 @Conditional 给定的条件为 true,才会创建相应的 Bean Condition 接口@Conditional 需要传入一个 class 对象,对应的类是任何实现了 Condition 接口的类
#技术帖    #配置    #龙潭书斋    #java   
构造器注入在实际的应用中,往往会有很多类之间相互协作完成特定的业务逻辑,每个对象负责管理与自己相互协作的对象的引用,这就造成高度的耦合和难以测试的代码考虑下面的例子:public class DamselRescuingKnight implements Knight { private RescueDamselQuest quest; public DamselRescuingKnight() { quest = new RescueDamselQuest(); // 与 RescueDamselQuest 紧耦合 } public void embarkOnQuest() throws QuestException { quest.embark(); } }  这里我们创建了一个骑士类,这个骑士紧密的与 RescueDamselQuest 耦合在一起,结果是这个骑士只能去拯救少女,而不能去杀掉一条恶龙,不能去参加一场决斗同时,当你需要测试这个骑士的对象时,必须保证 embarkOnQuest 方法调用的同时 RescueDamselQuest 的 embark 方法也被调用 通过依赖注入,可以将这样的耦合松散化public clas
#技术帖    #web    #xml    #龙潭书斋   



京ICP备15018585号