@Component(value="userDao")
1.修饰一个类,将这个类交给Spring管理。
Spring配置文件中被扫描识别的标志,被@Component注解的类交给Spring管理, applicatonContext.xml文件配置<context:component-scan base-package="包路径xxx.xx.xx"></context:component-scan> 。
相当于传统的 (非注解下的<bean>管理)
2.补充说明
@Component是组件修饰,甭管是MVC中Controller、Service都可以用这一个注解,所以后来又衍生了三个注解
@Controller:web层
@Service:业务层
@Repository:持久层
建议使用这三个,层次分明。
@Value("张三")
DI:普通属性注入
当想给某个类里面的属性在创建时就注入想要的值,就使用这个
1.不提供set方法直接加载 想要注入的属性上
2.提供set方法,就把注解放在set方法上。
@Autowired
DI:对象类型注入
当想引用每一个对象的时候,代码
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Service("userService")
public class UserServiceImpl implements UserService {
@Autowired
private UserDao userDao;//Spring 自动创建 UserDao userDao =new UserDaoImpl();
@Override
public void save() {
userDao.save();
}
}
这里你就可以,调用对象 userDao中的方法,在另一个类中进行使用。
@Qualifier
上面的@Autowired是按照名称来注入的,这里就是按照名称注入。举例:
@Resource (name="userDao222")
用来代替 @Autowired @Qualifier("userDao222") 这个组合注解的。
Bean的生命周期
@PostConstruct :初始化方法
@PreDestroy:销毁方法
Bean的作用范围
@Scope
singletion:默认单例
prototype:多例
request:
session:
globalsession:
@Aspect
AOP切面类注解,标注此类为切面
注意要在applicationContext.xml文件中开启AOP的注解开发
<aop:aspectj-autoproxy/>