基于注解与Java Config配置IoC容器

XML、注解和Java Config这三种只是配置方式不同,底层本质原理都是一样的。
基于注解配置IoC容器
JDK1.5以后提供注解。在类、属性或者方法上通过@符号增加的某一个特定的类名就是注解。
作用:对我们所描述的类、属性、方法进行额外的功能扩展或者增强。
基于注解的优势
摆脱繁琐的XML形式的bean与依赖注入配置
基于“声明式”的原则,更适合轻量级的现代企业应用
让代码可读性变得更好,研发人员拥有更好的开发体验
三类注解
组件类型注解:声明当前类的功能与职责
自动装配注解:根据属性特征自动诸如对象
元数据注解:更细化的辅助IoC容器管理对象的注解
四种组件类型注解
@Component:组件注解,通用注解,被该注解描述的类将被IoC容器管理并实例化
@Controller:语义注解,说明当前类是MVC应用中的控制器类
@Service:语义注解,说明当前类是Service业务服务类
@Repository:语义注解,说明当前类用于业务持久层,通常描述对应Dao类
这四种注解都是要放在Java类上的,各自的语义就是说明,作为当前的bean需要被IoC容器进行创建与管理。利用注解可以通知当前这个类的职责是什么。
@Repository 存储仓库的意思,这个注解通常放在业务持久层类上。业务持久层就是负责与数据库实现增删改查的Dao类。当开发过程中需要将一个Dao对象交由IoC创建并管理,那就可以在Dao类上放入@Repository。IoC容器初始化的时候会对所有的类进行扫描,发现类上有@Repository就自动的对这个Dao进行创建并进行管理。
@Service 对应的就是业务逻辑。service是我们日常开发中用于实现功能的最核心代码。IoC容器中有很多扩展模块是专门去增强service类的。这些模块就会自动的去应用到这个service对象上,进而实现功能的增强。
@Controller controller是承上启下的类,用于接受用户的输入调用service的方法,以及向客户端返回结果。作为@Controller学习Spring IoC容器时还用不到。
@Component 无法确认这个类是controller、service或repository。就可以用component
作为这四个注解,如果想要IoC识别的话还有个前置条件。就是在applicationContext.xml中开启组件扫描。不想扫描的包中的类,用context:exclude-filter正则表达式排除在外,不会被IoC容器进行管理。
<!--XML配置开启组件扫描,才能使用注解-->
    <context:component-scan base-package="包名">
    <context:exclude-filter type="regex" expression="正则表达式"/>
    </context:component-scan>

 

 
posted @ 2020-09-15 22:43  看清楚了吗  阅读(226)  评论(0编辑  收藏  举报