Spring的IOC的注解的详解

Spring4的IOC的注解开发

1.1.1Spring的IOC的注解开发的入门
1.1.2创建一个web工程
1.1.3引入jar包
Spring3.X 版本:
4个core+ 2个日志记录jar包: 注解的内容直接在核心包当中:

Spring4.X版本: 除了核心包, 还需要引入aop的包:
4个core + 2个日志记录jar包: + Aop的jar包:
1.1.4引入spring的配置文件
在src下创建一个applicationContext.xml

引入约束:使用注解开发, 需要引入一个context约束。
约束:
\spring-framework-4.2.4.RELEASE\docs\spring-framework-reference\html\

<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="
        http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"> <!-- bean definitions here -->
</beans>

1.1.5创建一个接口和实现类:
Public class Userdao
{
Public void save();
}

Public class UserDaoImpl implements UserDao{
//实现save方法:
}

//测试类:
方式一: 可以使用传统的方式, 直接new UserDaoImpl
方式二: 在xml当中进行配置,交给spring管理:

方式三: 使用注解的形式开发

方式三的开发步骤:
A:配置组件扫描:

在这里插入图片描述
B: 在类上添加注解:
@Component(value="") 万能的注解

@Repository(value="") 应用在dao层:
@Service(value="") 应用在业务层:
@Controller(value="") 应用在web层:

在这里插入图片描述
C:编写测试类:
在这里插入图片描述

1.1.6注解方式设置属性的值

传统方式: 提供属性, 提供set方法:
注解方式: 使用注解方式, 可以没有set方法。
属性如果有set方法, 需要将属性注入的注解添加在set方法上。
属性没有set方法, 需要将属性注入的注解添加在属性上。

在这里插入图片描述

1.2Spring的IOC的注解的详解

1.2.1@Component 组件
能够修饰一个类, 该类交给spring管理。 前提是配置好包扫描。
类上的注解:
@Component(value=“userServiceImpl”) 应用在任何层的任何类上:

这个注解有三个衍生注解。(功能类似)修饰类。
@Controller :web层的类
@Service :service层的类
@Repository :dao层的类:

1.2.2属性注入的注解
普通的属性:
@ Value :设置普通属性的值:
对象类型属性:
@Autoware :设置对象类型的属性的值, 是按照对象的类型进行注入。 和名称没有关系。
我们习惯是按照名称, 进行注入: 必须让 @Qualifier 一起使用, 完成按照名称属性注入:
@Resource :完成对象类型的属性的注入, 按照名称完成属性注入: spring提供的一套规范实现的。

Bean 的其他注解(了解)

@PostConstruct 相当于之前bean标签当中: init-method:   在构造器执行后, 执行。 
@PreDestroy  相当于之前bean标签当中: destroy-method: 在工厂销毁之前之前。 对象交给了spring管理。  工厂自动关闭。 (只适应于单例模式)
@Scope(value="prototype") 配置为多例 : (重点掌握)

默认情况:  工厂读取配置文件, 将bean对象根据单例模式创建。  并且,创建创建完成后, 工厂关闭。  
  多例的特点:  每创建一次, init方法执行一次。  destroy方式, 失效。 工厂不关闭。 

@PostConstruct 相当于init-method
@destroy-method 相当于 destroy-method
在这里插入图片描述

Bean作用范围的注解:
@Scope :作用的范围:
Singleton :默认单利:
Prototype :多例
Request
Session
Globalsession

在这里插入图片描述

1.3IOC的XML和注解开发比较

1.3.1XML和注解的比较
适应场景:
XML: 可以适应于任何场景。
注解: 有些地方是用不了的, 这个类不是自己提供的。 不能修改人家的源代码。

XML优点:
结构清晰, 维护方便。

注解: 开发方便

1.3.2XML和注解整合开发

XML 管理bean,注解完成属性注入。(没有set都可以)各需索长。

案例: xml管理bean , 注解完成属性的注入;

方式一:纯xml的方式: service层,依赖ProductDao 和 OrderDao
在这里插入图片描述
方式二:使用xml和注解方式共同开发: xml管理bean. 属性注入交给注解:
注意: 不需要扫描: 扫描类上的注解: compenent-scan

需要开启一个新得东西:
context:annotation-config/ 在没有类扫描的情况下, 使用属性注入的注解: 能够扫描属性注解
在这里插入图片描述

关于这个配置在博客搜了一下,两个配置比起来的话 其实context:component-scan
范围更全一些
https://blog.csdn.net/fox_bert/article/details/80793030
在这里插入图片描述

一般来说,像@ Resource 、@
PostConstruct、@Antowired这些注解在自动注入还是比较常用,所以如果总是需要按照传统的方式一条一条配置显得有些繁琐和没有必要,于是spring给我们提供<
context:annotation-config/>的简化配置方式,自动帮你完成声明。

思考1:假如我们要使用如@Component、@Controller、@Service等这些注解,使用能否激活这些注解呢?

答案:单纯使用< context:annotation-config/>对上面这些注解无效,不能激活!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

东方-教育技术博主

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值