在jeecms2.4版本中,spring技術採用了2.5.6版本,這個版本之前沒有用過,和以前的用法還是有些差別,在這個版本中,spring採用了註解機制,通過組件掃描機制,將bean注入
在applicationContext。xml中,配置如下:
<context:component-scan base-package="com.jeecms,com.soft" />(配置多個包用逗號隔開)
在dao層實現類中,配置註解 @Repository
在service層實現類中,配置註解 @service
在action中,配置註解@Controller
(action的配置不是根據類路徑去查找類的,而是根據controller的配置去查找類的,
例如:
<action name="Com_*" method="{1}" class="article.channelAct">
class的參數是去匹配 @Controller("article.channelAct")的
這個也是spring 組件掃描的對象。
)
service調用service時,不用寫get,set方法,只用配置一下,就行了
例如:
@Autowired
private MemberMng memberMng;
由於配置了全包掃描,剛開始不知道得到bean的方式是否一樣,在測試類中如何得到。
最後測試發現,還稍有不同。
第一種方式是:
ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");
//此處bean的名字是實現類的名字
MemberMng memberMng = (MemberMng) ac.getBean("memberMngImpl");
第二種方式:
@Service("memberMng")
@Transactional
public class MemberMngImpl implements MemberMng{
}
得到bean的方式:
ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");
//此處bean的名字是實現類的名字
MemberMng memberMng = (MemberMng) ac.getBean("memberMng");