有没有办法在Spring应用程序中静态/全局请求ApplicationContext的副本?
假设主类启动并初始化应用程序上下文,是否需要将它通过调用堆栈传递给任何需要它的类,或者有没有办法让类询问先前创建的上下文?(我认为必须是单身?)
我在用春天.我需要从属性文件中读取值.这是内部属性文件而不是外部属性文件.属性文件可以如下所示.
some.properties ---file name. values are below.
abc = abc
def = dsd
ghi = weds
jil = sdd
Run Code Online (Sandbox Code Playgroud)
我需要以传统方式从属性文件中读取这些值.怎么实现呢?有没有关于spring 3.0的最新方法?
注入任何服务时,我有两个选择:
(现场注射)
@Inject
private MyService myService;
Run Code Online (Sandbox Code Playgroud)
或(构造函数注入)
private MyService myService;
@Inject
public ClassWhereIWantToInject(MyService mySerivce){
this.myService = myService;
}
Run Code Online (Sandbox Code Playgroud)
为什么Constructor注射比Filed注射更好?
我是Spring Framework的新手.我们想在Web应用程序中引入它(3.1),目前使用Web层中的struts,业务层中的服务外观和业务对象以及持久层中自编写的JDBC DAO(所有这些都紧密耦合!)
我创建了几个.xml配置,一个用于servlet配置,仅扫描com.mydomain.web包.另一个在服务层appContext-service.xml上扫描com.mydomain.bs和.bo包,另一个用于DAO层appContext-persistence.xml扫描.dao包.
我们有四个具有适当项目依赖性的Eclipse项目:Web,Business,Common(包含域对象,DTO,Exceptions等),DataAccess.
我想在可能的情况下使用注释,并且已经创建了一个MVC控制器,一个带接口的新服务和一个带接口的新dao,使用JDBC模板,这一切都很有效.
现在我的问题是:
我们不能一次重写所有代码,我们在这里谈论更大的代码库.但是,如果还需要从尚未知道Spring的服务和业务对象中获取新创建的服务,我该怎么办?它们不是bean,也不是Spring创建的.我怎么能抓住我的服务bean?
我们有几个独立的应用程序用于批处理,定期清理文件系统和数据库表等.它们由cron(UNIX cron)触发,因此有自己的JVM.考虑到不同的.xml配置,我最好如何在这里使用Spring服务?
我的设置是否有任何意义?
感谢您的任何见解.
我的应用程序中有一个案例,我需要使用该对象AccountsDao accountsDao
public class Account {
@Autowired
private AccountsDao accountsDao;
Run Code Online (Sandbox Code Playgroud)
无需将属性添加@Component到Account类中(并且无需任何其他方法将其标记为 spring bean)。
app很大,有客观原因Account不能是Spring Bean,必须手动初始化。
我也知道这是单例,通用结构就可以了。
有没有办法做到这一点?