ApplicationContext.xml bean执行 - 如何?

时间:2012-02-10 20:41:30

标签: java spring jersey

applicationContext.xml包含以下行:

<bean id="myclass" class="com.abc.myclassinfo" >
</bean>

而且,myclassinfo.java的代码如下:

public class myclassinfo {
   public myclassinfo() {
       // Here I'm initializing Jersey client
   }
}

现在,当spring加载applicationContext.xml时会发生什么?它是否会调用此构造函数?

另外,如果我想在没有applicationContext.xml的情况下以其他方式对泽西岛客户进行初始化,我该怎么做?

谢谢!

3 个答案:

答案 0 :(得分:1)

  • 首先,它调用构造函数(默认为no-arg,如果注释则为另一个)
  • 然后它会调用@PostConstruct / init-method
  • 然后它调用可以进一步操作对象的后处理器

如果你想在spring之外使用类,你只需要实例化它(使用构造函数),然后手动调用init方法(如果存在的话)。请注意,您丢失了Spring在对象周围为事务,调度,缓存等创建的自动代理。

答案 1 :(得分:0)

尝试使用init-method@Postconstruct注释来初始化逻辑。

答案 2 :(得分:0)

似乎日志声明很快就会解决第一个问题。

你的第二个问题对我来说并不完全清楚。您可以使用注释,并至少跳过大多数XML。我不知道Jersey客户端的东西对Spring有很大的依赖性。

如果你想在没有配置文件和没有注释的情况下使用Spring,你可以以编程方式构建一个上下文,虽然我不确定你为什么要这样做,除了可能用于测试。即使这样,IMO也可以更容易地扩展现有的上下文。