spring security 3.1中spring注入的问题

配置如下

1.先是action

//这样注入方便ajax在前台直接与action交互
@Action(value = "teacherManagerAction")
public class TeacherManagerAction extends BaseAction 
{
  ......
  //这里假如我用的是get/set方法得到teacherService,是无法成功注入service的
  //至于为什么,有待研究..
  @Autowired
  private ITeacherService teacherService;
  ......
}

2.然后是service层

//类似方式的注入,也可以是 @Service,但是如果你的spring配置文件中有对service的bean配置,那就只能@Service("...")里面是配置的bean的id值
@Service("teacherService")
public class TeacherServiceImpl extends BaseServiceImpl implements ITeacherService {
   ......
   // 同样这里不能用get/set方法	
    @Autowired
    private ITeacherDao teacherDao;
  ......


}

3.最后dao层

//这里因为我继承了HibernateDaoSupport,所以在spring配置文件中配置dao对应的bean
  //所以只能这么写  @Repository("teacherDao")
  @Repository("teacherDao")
  public class TeacherDaoImpl extends HibernateDaoSupport implements ITeacherDao {

4.最后是配置文件

<?xml version="1.0" encoding="UTF-8"?>
<beans:beans xmlns="http://www.springframework.org/schema/security"
	xmlns:beans="http://www.springframework.org/schema/beans" 
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns:context="http://www.springframework.org/schema/context"
	xsi:schemaLocation="http://www.springframework.org/schema/beans 
	             http://www.springframework.org/schema/beans/spring-beans-3.0.xsd 
	       		 http://www.springframework.org/schema/security 
	       		 http://www.springframework.org/schema/security/spring-security-3.1.xsd
	       		http://www.springframework.org/schema/context   
				 http://www.springframework.org/schema/context/spring-context-2.5.xsd
	       		">
    <!-- 以上不一定要全部一样 context的几个是要的 -->
    <!-- spring 注解注入的配置 -->
    <context:annotation-config />
	<context:component-scan base-package="com.kcsj.dao.impl"> 
		<context:include-filter type="regex"
			expression=".*DaoImpl" />
	</context:component-scan>
	<context:component-scan base-package="com.kcsj.service.impl">
		<context:include-filter type="regex"
			expression=".*ServiceImpl" />
	</context:component-scan>
  ......

相关推荐