Spring框架IOC用到的注解
本篇文章是我在学习了Spring的课程之后总结而得。
课程链接:https://www.bilibili.com/video/av47952931
目录
一 . 用于生成bean对象并将bean对象存入IOC容器中的注解。
二. 用于注入数据的注解(比如给类属性赋值)
三. 生成配置类的注解和使用配置类生成bean对象的注解。
四. Spring整合Junit的注解。
前言:
IOC容器是Map结构的,因此将bean对象存入IOC容器中要有对应的键值对:key=value。下面所说的beanId就是其中的key。
注解是有属性名和属性值的,写在注解括号中( @Component(value=”beanId”) ),类似键值对:key=value,当属性名是value时,可以省略该属性名( @Component(“beanId”) )
一 . 用于生成bean对象并将bean对象存入IOC容器中的注解。
1. @Component(“key”) :
作用:写在类名之前,程序运行时会生成一个当前类的对象作为IOC容器中的bean对象。
@Service(“key”) @Repository(value=”key”) @Controller(“key”) :
作用:与@Component作用完全一样,只是为了划分三层架构,@Service用在业务逻辑层(service层),@Repository用在数据 访问层(dao层),@Controller用在表现层(view层)。
@Service(value = "accountService")
public class AccountServiceImpl implements IAccountService {
}
二. 用于注入数据的注解(比如给类属性赋值)
1. @AutoWired
作用:自动按照类型进行注入,即在IOC容器中根据类型进行匹配。
示例:如下图。
注解:首先在IOC容器中找到与变量的数据类型(AccountDaoImpl)相同的bean对象,然后用该bean对象给当前的变量赋值。
如何匹配到多个同类型的bean对象,则把变量名(accountDao)作为beanId进行查找,如果找不到则报错。如下图。
2. @Qualifier
作用:跟@AutoWired连用,根据数据类型+beanId在IOC容器中进行匹配,匹配成功则注入数据。
说明:使用@Autowired是根据数据类型+变量名称在IOC容器中进行匹配,@Autowired是把变量名称作为beanId进行匹配, 而@Qualifier则可以手动指定beanId。
示例:如下图。
3. @Resource
作用:按照beanId注入。可以独立使用。
属性:
name : 用于指定beanId。
示例:如下图。
4. @Value
作用:用于向基本数据类型和String类型的变量(属性)注入数据。
属性:
value:用于指定变量的值。可以使用spring中的EL表达式。
示例:如下图。
注意:对集合类型的数据只能使用XML配置文件进行配置。
三. 生成配置类的注解和使用配置类生成bean对象的注解。
第一部分我们讲到了用@Component来生成bean对象并且存入IOC容器中,我们是通过在自己定义的类上加@Component注解来实现的。
但是有时候我们的bean对象可能来自某个jar包中的类,因为我们无法在jar包中使用@Component来生成bean对象,所以这里引入配置类。
1. @Configuration
作用:指定当前类是配置类。
2. @Bean
作用:把当前方法的返回值作为bean对象存入IOC容器中。
属性:
name:用于指定当前bean的beanId。默认值是方法名称。
value:和name功能一模一样,只是别名而已,所以我们可以省略属性名。
3. @ComponentScan
作用:用于指定在创建IOC容器时要扫描的包。如果包中有类加了注解@Component则生成一个bean对象存入IOC容器中。
属性:
value:指定包名。属性值是一个数组,使用{package1,package2,……,package}可以指定多个包。
basePackages:是value的别名,功能一模一样。所以属性名可以省略。
@Configuration、@ComponentScan和@Bean的示例:如下图。
4. @Import
作用:用于导入其他的配置类。导入的类不需要使用注解@Configuration来表示自己是个配置类。
5. @PropertySource
作用:用于导入properties文件。
四. Spring整合Junit的注解。
1. @RunWith
作用:Junit提供的一个注解,把原有的main方法替换成spring提供的main方法。
2. @ContextConfiguration
作用:告诉Spring的运行器,Spring的IOC容器创建时是基于XML文件还是配置类。
属性:
locations : 指定xml文件的位置。
classes:指定注解类的位置。
注意:当我们使用Spring5.x版本时要求Junit的jar包必须是4.12以及以上版本。
- 示例如图。
还没有评论,来说两句吧...