1.五大类注解详解(重点
1.Controller 控制器,用于业务逻辑层,来控制用户的行为。它用来检查用户参数的有效性。
当用户的参数有效的话会继续分发到服务层。controller可以理解为程序的安保系统
2.Service 服务层。归属服务层,调用持久化类实现相应的功能。(服务层不直接操作数据库 )
服务层是控制中心,它决定到底调用哪些对象的哪些方法
3.Repository (仓库) :归属于持久层,是直接和数据库进行交互的。通常每一个表对应一个Repository。
4.Configuration 配置层,归属于配置层,用来配置当前项目的一些信息的
5.Component (组件)归属于公共工具类,提供的是某些公共的方法。
2.类注解
总结:Controller就是处理前端的请求并返回一些响应,同时还负责检查用户传入的参数的合法性
因此,Controller 扮演了前端与后端的桥梁角色
Service
Repository 用来直接和数据库交互,一个表负责一个Repository注解
3.五个类注解的关系
小节:4个类注解都是由Component来实现的,4个其他类都是Component的子类
4.Bean注解怎么取?
Bean注解要配合五大注解使用,因为单独的Bean如果不配合五大注解使用,需要访问所有的方法才能确定是哪个Bean要调用,效率低下 。
此外,不能使用BeanFactory 只能用ApplicationContext (原因是BeanFactory是懒加载它可能就只加载了外面的Component,而内部的Bean不加载,所以找不到
)
我们常常认为默认的第一个参数就是Bean name,但是如果在Bean中设置了name 那么就要用name作为Bean name而不是默认名字,一般我们也是要设置方法Bean的name的因为方法重名的概率很大
并且Bean的name可以起多个
new Spring上下文对象和用context.getBean的方法都是一样的