Spring 如何使用IOC的注解开发各个注解的含义

Spring的IOC的注解开发的入门

1.创建web项目,引入jar包在这里插入图片描述
然后引入Spring配置文件
创建applicationContext.xml
然后在xml中引入约束:使用注解开发引入context的约束
在这里插入图片描述
创建好接口和实现类
在这里插入图片描述此时的@Component(“userDao”)相当于<bean id=“userDao” class=“com.itheima.spring.demo1.UserDaoImpl”,自己的理解相当于在xml中配置了这一条语句

在这里插入图片描述
2.注解方式设置属性的值
如果使用注解方式设置属性的值可以没有set的方法
属性如果没有set方法,需要将属性注入的注解添加到set方法
属性如果没有set方法,需要将属性注入的注解添加到属性上
在这里插入图片描述
在这里插入图片描述

Spring的IOC的注解的详解

1.@Component:组件
用来修饰一个类,将这个类交给Spring管理
这个注解有三个衍生注解(功能)类似,本来service层,dao层也可以用@Component这个注解去修饰,但是后面发现这样做分层结构不太明显,后来提供这三个衍生注解修饰我们的类,但是这三个目前来讲跟我们的@Component的功能是一致的。但后面会对每一层的注解提供更多的属性,扩展的
@Controller:web层
@Service:service层
@Respository:dao层

属性注入的注解

普通属性:@Value :设置普通属性的值

对象类型属性:@Autowired:设置对象的属性的值。但是按照类型完全属性注入。
但是我们开发习惯是按照名称完成属性注入的:此时必须让Autowired注解和@Qualifier一起使用完成按照名称输入

还有一个替代的注解@Resource :完成对象类型的属性的注入,按照名称完成属性注入 (对象类型一般用这个)

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
为什么userdao这个属性就是userDaoImpl的实例化对象呢,在这里由于在这里插入图片描述
@Repository(“UserDao222”)是写在UserDAOImpl这个类上的,实例化对象就是UserDAOImpl,@Autowired或@Respository后便会根据类型名字给这个属性赋值上这个名字对应的对象。

Bean的其他的注解

如生命周期,init method,还有结束时调用的方法destroy-method
@PostConstruct//相当于init-method
@PreDestroy //相当于destroy-method
在这里插入图片描述
在这里插入图片描述

Bean的作用范围的注解

@Scope:作用范围 下面两个比较常用
singleton:默认单类
prototype:多例
//这个用在struct2
request
session
globalsession
在这里插入图片描述
在这里插入图片描述

IOC的XML和注解开发比较

适用场景:
XML:可以适用于任何的场景
好的原因:结构清晰,维护方便,这个类用到哪些属性了,打开文件一目了然,若使用注解则要打开源代码去看
注解:有些地方用不了,若这个类不是自己提供的
开发方便:
在这里插入图片描述
还有一种开发:XML和注解的整合开发:各取所长,打开xml就可以知道哪些类被spring管理了,注解属性注入很方便,使用xml管理Bean,注解完成属性的注入,就不用xml开发时的get,set方法的写入了

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值