@Componcnt :作用就是把当前类对象存入spring容器中
属性:value 用于指定bean的id 当我们不写的时候默认就是当前类名,并且首字母要小写
----------------------------------------------------------------------------------
@Controller 一般用在表现层
@Service 一般用在业务层
@Repository 一般用在持久层
他们三个是spring 框架为我们提供的注解,使我们的三层对象更加的清晰
-------------以上四个注解都是用来创建对象的------------------------------------
用于注入数据的
他的作用就是和在xml配置文件中的bean标签中写一个<property>标签的作用是一样的
@Autowired
作用:自动按照类型注入,只要容器中有唯一一个bean对象类型和要注入的变量类型匹配,就可以成功注入
位置:变量或者方法上
细节:set方法就不需要必须的了
@Qualifier
作用:按照类中注入的基础上再按照名称注入。给类成员注入时不能单独使用 要和@Autowired一起使用
属性: value 用于指定bean的id
@Resource
作用:直接按照bean的id注入 可以独立使用
· 属性:name用于指定bean的id
以上三个都只能注入其他bean类型的数据,基本的string类型的不能进行注入 ;集合类型的只能用xml注入
-----------------------------------------------------------------------------------------------------------------------
用于改变作用范围的
作用就是在bean标签中使用scope属性实现的功能是一样的
scope
作用:用于指定bean的作用范围
属性: value 指定范围取值 singleton(单例) prototype(多例)
-----------------------------------------------------------------------------------------------------------------------
和生命周期有关的
作用就是和在bean标签中使用init-method和destroy-methode的作用一样
@PostConstruct 初始化方法
@PreDestroy 销毁方法
----------------------------------------------------------------------------------------------------------------------------
在service中
@Service 的作用就是创建对象自动注入到spring容器中 代表在底层创建一个bean节点
@Transactional 的作用就是 事务操作 在需要事务管理的地方加@Transactional 注解。@Transactional 注解可以被应用于接口定义和接口方法、类定义和类的 public 方法上。
@Autowired
自动按照类型注入,只要容器中有唯一一个bean对象类型和要注入的变量类型匹配,就可以成功注入
项目启动 全局扫描包!扫描带有注解的地方,找到@Service 将创建好的对象自动注入到spring容器当中,然后 再通过@Autowired注入 调用里面的方法。 controller调用service层写了@Service而 service调用mapper层,mapper层没有写@Service是因为在springMVC.xml 里面第七步配置了 扫描mapper