1. 需要在applicationContext.xml 启动注解注入的方式,添加配置选项,如下:
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd">
完整的applicationContext.xml:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/
beans
http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-2.5.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-2.5.xsd">
<context:annotation-config/> <!-- 定义使用注解注入 -->
<context:component-scan base-package="com.spring"/><!--自动搜索自定包下的类进行注解注入-->
</beans>
2. 对类进行注解注入
如何对需要注解的类进行标识,分为两种方法:
(1). 通用方法:
@Component("别名")
@Scope("prototype") //多例(默认是单例)
通用方法对所有的类都可用,如action,service,dao,但是不推荐使用,因在这样不好区分,代码可读性不好。
(2).特殊类注解(这种方法是spring推荐的)
action 类: @Controller("别名")
service 类: @Service("别名")
dao 类: @Repository("别名")
3. 实例代码
UserAction:
package com.spring.action;
import javax.annotation.Resource;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Controller;
import com.spring.dao.UserDao;
import com.spring.service.UserService;
@Controller("userAction")
@Scope("prototype") //多例模式
public class UserAction {
@Resource(name="userService") //通过注解得到UserService对象
private UserService us;
@Resource(name="UserDao") //通过注解得到UserDao对象
private UserDao dao;
public void run(){
System.out.println("UserAction running......");
us.runService();
dao.addUser("admin");
}
}
UserService:
package com.spring.service;
import org.springframework.stereotype.Service;
@Service("userService")
public class UserService {
public void runService(){
System.out.println("user service running......");
}
}
UserDao:
package com.spring.dao;
import org.springframework.stereotype.Repository;
@Repository("UserDao")
public class UserDao {
public void addUser(String username){
System.out.println(username+"添加成功");
}
}