spring的注解IOC配置以及依赖注入

Spring的注解IOC

注解如果要生效,需要在配置文件中声明使用注解进行配置。并指定扫描的包
	<context:component-scan base-package="com.itheima"></context:component-scan>
注解分类
IOC注解(创建对象)*****
	Component
		作用:用于把当前类对象存入spring容器中
		属性:
		    value:用于指定bean的id。当我们不写时,它的默认值是当前类名,且首字母改小写
	衍生的三个注解,和Component的作用一致
		Controller:一般用在表现层
		Service:一般用在业务层
		Repository:一般用在持久层

依赖注入的注解*****

	自动注入
		@Autowired
			自动把容器中已有的值注入到指定位置。
			匹配的原则:
				首先按照类型进行匹配,如果容器中有且只有一个与之对应的数据,直接注入。
						      如果容器中没有任何与之对应的,默认会报错。如果使用required属性指定为false,可以不注入 @Autowired(required = false)
				如果容器中有多于一个数据可以类型匹配,
					先按照变量名称作为容器中数据的key查找,如果能找到,注入此数据。
									       如果找不到,直接报错。
			注入list或map集合的情况
				如果是list集合,会把容器中所有跟list集合的泛型匹配的数据都放入list中
				如果是map集合,要求map的key的类型必须是String。此时会把容器中类型能和map的值的泛型匹配的元素都放入map。
		注入的其他注解
			@Qualifier:
			    作用:在按照类中注入的基础之上再按照名称注入。它在给类成员注入时不能单独使用。但是在给方法参数注入时可以(稍后我们讲)
			    属性:
			        value:用于指定注入bean的id。
			@Resource
				等价于Autowired和Qualifier的组合
				属性名称为name,不可省略
			@Value
				 作用:用于注入基本类型和String类型的数据
				 属性:
				     value:用于指定数据的值。它可以使用spring中SpEL(也就是
				             SpEL的写法:${表达式}

作用范围和生命周期相关注解(了解)

	Scope
		作用:用于指定bean的作用范围,默认是单例的
		属性:
		    value:指定范围的取值。常用取值:singleton prototype
	PreDestroy
	    作用:用于指定销毁方法
	PostConstruct
	    作用:用于指定初始化方法

案例:*****
使用半注解半xml的开发方式(开发中经常会使用这种配置方式)
自定义的类的管理可以使用注解完成
如果是第三方jar包中的类,使用xml配置
Spring纯注解开发配置***
@Configuration
用于指定某个类是spring的配置类,在其中可以设置spring的一些参数。相当于是替代了spring的配置文件。
@ComponentScan
用于指定spring要扫描的包,便于解析注解。
@Bean
作用:用于把指定工厂方法的返回值作为bean对象存入spring的ioc容器中
属性:
name:用于指定bean的id。当不写时,默认值是当前方法的名称
细节:
当我们使用注解配置方法时,如果方法有参数,spring框架会去容器中查找有没有可用的bean对象。
查找的方式和Autowired注解的原理是一样的(可以理解为,只要用Bean注解配置了方法,此方法的参数自带Autowired注解)
可以使用Qualifier注解直接指定需要注入的bean的id完成注入。
@Import
作用:用于导入其他的配置类。写在主配置类中的,一般会使用主配置引入多个单独的配置文件共同组合成最终的配置。
属性:
value:用于指定其他配置类的字节码。
当我们使用Import的注解之后,有Import注解的类就父配置类,而导入的都是子配置类

Spring整合Junit**

默认Junit不会创建spring容器,更不会自动注入需要的对象。
如果能让Junit支持spring,可以帮我们在执行测试代码之前创建并维护容器,就可以支持spring的设置了。

Junit提供了一个注解RunWith,可以用于替换Junit原有的执行类。
Spring提供了一个Junit的执行类,这个执行类会帮助我们创建IOC容器。

Spring提供了一个ContextConfiguration注解,用于指定创建容器时配置的获取方式。
	属性:
		classes:用于指定注解配置时的配置类
		locations:用于指定xml配置时的配置文件路径
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值