Strutsaction要用其中service;
充血领域模型Hibernate实体会需要dao
要这些bean现在也确实有很多做法:
以下代码描述方式被称为bad smell是最不自然方式不被提倡;
JDBCDao jdbcDao = (JdbcDao)springContext.getBean("jdbcDao");
自然方式是你bean也是注入:
struts2是通过个spring plugin来做到;
hibernate就没那么简单了要用到annotation声明要什么ASPectJ织入概念复杂麻烦的极;
我有个简单做法至少对单件bean很可行(般我们需要bean也就是单件)思路很简单依靠spring注入机制把容器内bean注入为静态变量而静态变量天然就是各处可用以下是代码:
Java:
public JdbcDao {
//静态变量
private JdbcDao instance;
//静态思路方法获取单件对象
public JdbcDao get{
instance;
}
//对象思路方法注入到静态变量
public void Instance(JdbcDao _inst){
instance = _inst;
}
public List query(String sql){
....
}
}
spring配置,将自身注入:
<bean id="jdbcDao" ="net.jacker.dao.JdbcDao">
<property name="instance">
<ref bean="jdbcDao" />
</property>
</bean>
这样只要spring容器启动构造好bean后就会自行将其注入到静态变量然后在各处就很简单了:
public UserAction {
JdbcDao jdbcDao = JdbcDao.get;
public String execute{
jdbcDao.query;
}
...
}
注:网上有些思路也是从静态变量入手但做法有所区别有需要依赖Web容器就不多做介绍了
最后要说就是这也是单件模式种实现使用spring容器配置注入好你单件对象并在任何地方使用的
最新评论