spring中Configuration和ComponentScan注解,解决外部jar包不能注解问题

2022-07-04 12:07:35

注解替换context:component-scan标签

1.创建一个配置文件类(此类没有名称路径有要求)
2.在类上使用Configuration注解
	作用:制定该类是一个配置类

在这里插入图片描述
在这里插入图片描述

	3.使用ComponentScan注解来指定spring容器需要扫描的包
		使用位置:配置类上方
		作用:指定需要扫描的包路径
		源码中:
			AliasFor注解含义:对谁的别名。表示为标记的属性或者方法设置别名。

在这里插入图片描述
在这里插入图片描述

4.写了以上配置表示<context:component-scan base-package="com.gaipian"></context:component-scan>语句已经被替换
扩展:有且只有一个值可不用写大括号‘{}’

在这里插入图片描述

使用注解替换bean标签,bean注解

1.创建一个方法,根据bean标签的注入参数设置对应的参数以及返回值

在这里插入图片描述
在这里插入图片描述

2.此时发现,上方两个的样子基本相似,但是还有一个区别点,第一个并没有加入到spring容器中这时候就需要借助Bean注解
	Bean注解:
		作用:用于把当前方法的返回值作为bean对象存入到spring的ioc容器中
		属性:
			name:制定bean的id,默认为当前方法名称
	细节:
		当我们使用配置文件是,如果方法有参数,spring框架会在容器中查找是否有相对应的bean对象,而且查找的方式和Autowired注解一样,
		类型个数唯一时,自动匹配,类型个数多个时根据参数名称匹配。

脱离bean.xml文件创建容器对象

1.打开ApplicationContext的实现类发现其中有一个叫做AnnotationConfigApplicationContext实现类

在这里插入图片描述

2.查看构造函数,传入相关的字节码

在这里插入图片描述

使用多个配置类以及Import注解

1.Configuration注解是我们指定该类为配置类的注解,但是当使用AnnotationConfigApplicationContext获取容器时该注解可以忽略,使用该实例类传
入的类字节码就是配置类
2.将配置类分成多个配置类,比如将数据连接的配置单独作为一个类,有一下三种情况
	1).AnnotationConfigApplicationContext传入的字节码为主配置类,子配置类使用Configuration注解标记
	2).AnnotationConfigApplicationContext传入所有配置类的字节码,子配置类不需Configuration注解
		(此时各配置类属于同级状态)
	3).使用Import注解(此时主配置类和其他配置类是属于子父级状态)
4.Import注解使用
	作用:用于导入其他的配置类
	属性:value,指定其他配置类的字节码

使用注解读取properties文件,并将值注入到对应属性字段中

1.PropertySource注解:
	位置:主配置文件中
	作用:制定properties文件的位置
	属性;
		value:制定文件的名称和路径
			关键字:classpath,表示文件在类路径下
示例:
	@PropertySource("classpath:jdbcConfig.properties")(此时是在类的根路径下方,只用写配置文件名即可)

在这里插入图片描述

2.子配置类中使用Value注解和el表达式来注入值

在这里插入图片描述

使用注解替换bean标签,bean注解 Qualifier扩展

1.当数据源对象类型数量有多个时,Bean是根据方法参数的名称来找数据源对象的,但是想在不改变行参名称的前提下只能够利用Qualifier标签来指
定数据源对象

在这里插入图片描述

  • 作者:自在的双面鱼
  • 原文链接:https://blog.csdn.net/qq_32865713/article/details/99468584
    更新时间:2022-07-04 12:07:35