//注解配置:
spring中提供了四个重要的注解:
@Component | 被此注解标注的类为Spring的一个组件,没有明确的角色 |
@Repository | 标注的为Dao层 |
@Service | 标注的为service层 |
@Controller | 标注的是控制层(如:springMVC) |
以上四个注解用于声明bean.
注入bean的注解:
一般情况下通用@Autowired,这个注解会通过类型匹配的方式为属性自动装配合适的依赖对象,若容器中有一个以上类型匹配的bean组件时,可以用@qualifier指定所需的bean名称。也可以使用@Resource注解进行依赖对象的装配。
示例:
import org.springframework.stereotype.Component;
//通过注解定义了一个dao
@Component("userDao")//此代码与在XML中编写<bean id="userDao" class="....UserDaoImpl" />等效
public class UserDaoImpl implements UserDao{
public void save(User user){
System.out.println("保存用户信息");
}
}
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Service;
//通过注解标注了一个service
@Service("userService")
public class UserServiceImpl implements UserService{
//为dao属性进行装配
@Autowired
@Qualifier("userDao")
private UserDao dao;
}
接下来在spring配置文件中添加compnent-scan标签扫描注解标注的类
<context:component-scan base-package="包名" />或者创建一个被以下两个注解标注的类
- @Configuration//声明当前类是一个配置类
- @ComponentScan//自动扫描包名下所有使用@service@component@reposi@controller的类,并注册成为bean
注:使用@Service @Component @Repository @Controlle是等效的