type
status
date
slug
summary
tags
category
icon
password
URL
文章来源说明

IOC注解应用

在bean上添加注解,可以快速的将bean注册到ioc容器。
如果想要将自定义的bean对象添加到IOC容器中,需要在类上添加某些注解 Spring中包含4个主要的组件添加注解: @Controller:控制器,推荐给controller层添加此注解 @Service:业务逻辑,推荐给业务逻辑层添加此注解 @Repository:仓库管理,推荐给数据访问层添加此注解 @Component:给不属于以上基层的组件添加此注解 注意:我们虽然人为的给不同的层添加不同的注解,但是在spring看来,可以在任意层添加任意注解 spring底层是不会给具体的层次验证注解,这样写的目的只是为了提高可读性,最偷懒的方式 就是给所有想交由IOC容器管理的bean对象添加component注解
 
使用注解需要如下步骤: 1、添加上述四个注解中的任意一个 2、添加自动扫描注解的组件,此操作需要依赖context命名空间 3、添加自动扫描的标签context:component-scan
 

定义扫描包时需要包含的类和不要包含的类

当定义好基础扫描的包之后,可以排除包中的某些类,使用如下的方式: type:表示指定过滤的规则 annotation:按照注解进行排除,标注了指定注解的组件不要,expression表示要过滤的注解 assignable:指定排除某个具体的类,按照类排除,expression表示不注册的具体类名 aspectj:后面讲aop的时候说明要使用的aspectj表达式,不用 custom:定义一个typeFilter,自己写代码决定哪些类被过滤掉,不用 regex:使用正则表达式过滤,不用
<!--指定只扫描哪些组件,默认情况下是全部扫描的,所以此时要配置的话需要在component-scan标签中添加 use-default-filters="false"-->
 

使用@AutoWired自动注入

注意:当使用AutoWired注解的时候,自动装配的时候是根据类型实现的
  1. 如果只找到一个,则直接进行赋值
  1. 如果没有找到,则直接抛出异常
  1. 如果找到多个,那么会按照变量名作为id继续匹配
    1. 匹配上直接进行装配
    2. 如果匹配不上则直接报异常
  1. 还可以使用@Qualifier注解来指定id的名称,让spring不要使用变量名,
  1. @AutoWired注解的源码的时候发现,此注解不仅可以使用在成员变量上,也可以使用在方法上。
 

自动装配的注解@AutoWired,@Resource

在使用自动装配的时候,出了可以使用@AutoWired注解之外,还可以使用@Resource注解
  1. @AutoWired:是spring中提供的注解,@Resource:是jdk中定义的注解,依靠的是java的标准
  1. @AutoWired默认是按照类型进行装配,默认情况下要求依赖的对象必须存在,@Resource默认是按照名字进行匹配的,同时可以指定name属性
  1. @AutoWired只适合spring框架,而@Resource扩展性更好
 
 
 
致谢:
💡
有关Notion安装或者使用上的问题,欢迎您在底部评论区留言,一起交流~
 
 
springspring核心原理
Loading...