jeecms中spring的应用
??? 在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");
?
?
?
?
?
?
?
?
?