Spring_02 注入类型值、利用引用注入类型值、spring表达式、与类相关的注解、与依赖注入相关的注解、注解扫描...
注意:注入基本类型值在本质上就是依赖注入,而且是利用的set方式进行的依赖注入
1 注入基本类型的值
<property name="基本类型的成员变量名" value="值"/>
2 注入集合类型的值(直接注入)
2.1 注入list类型的值
1 <property name="interest"> 2 <list> 3 <value>钓鱼</value> 4 <value>做饭</value> 5 <value>看电视</value> 6 <value>看电视</value> 7 </list> 8 </property>
注入list类型的配置文件格式
2.2 注入set类型的值
1 <property name="city"> 2 <set> 3 <value>北京</value> 4 <value>长沙</value> 5 <value>武汉</value> 6 <value>武汉</value> 7 </set> 8 </property>
注入set类型的配置文件格式
2.3 注入map类型的值
1 <property name="score"> 2 <map> 3 <entry key="英语" value="80"/> 4 <entry key="math" value="90"/> 5 </map> 6 </property>
注入map类型的配置文件格式
2.4 注入properties类型的值
1 <property name="db"> 2 <props> 3 <prop key="username">King</prop> 4 <prop key="password">1234</prop> 5 </props> 6 </property>
注入properties类型的配置文件格式
3 注入集合类型的值(利用引用注入)
1 <util:list id="interestBean"> 2 <value>游泳</value> 3 <value>台球</value> 4 <value>编程</value> 5 </util:list> 6 <util:set id="cityBean"> 7 <value>北京</value> 8 <value>长沙</value> 9 <value>南昌</value> 10 </util:set> 11 <util:map id="scoreBean"> 12 <entry key="english" value="80"/> 13 <entry key="math" value="90"/> 14 </util:map> 15 <util:properties id="dbBean"> 16 <prop key="username">Sally</prop> 17 <prop key="password">1234</prop> 18 </util:properties> 19 <!-- 20 以引用的方式注入集合类型的值。 21 --> 22 <bean id="vb2" class="value.ValueBean"> 23 <property name="interest" 24 ref="interestBean"/> 25 <property name="city" 26 ref="cityBean"/> 27 <property name="score" 28 ref="scoreBean"/> 29 <property name="db" 30 ref="dbBean"/> 31 </bean>
利用引用给集合类型注入值的配置文件格式
4 利用注解进行简化配置
4.1 与类有关的4个注解
@respository("id属性值") -> 用于持久层
@controller("id属性值") -> 用于控制层
@service("id属性值") -> 用于服务层
@component("id属性值") -> 通吃
注意:id属性值 一般是 类的首字母小写后的结果
4.2 其他注解
@Scope("singleton") -->> 设置作用域
@Lazy(true) -->> 设置延迟加载
@PostConstruct -->> 设置初始化方法
@PreDestroy -->> 设置销毁方法
@Value("warrior") -->> 给成员变量注入值
5 使用spring表达式去读取其他bean的属性
1 <bean id="sb1" class="value.SpelBean"> 2 <property name="name" 3 value="#{vb1.name}"/> 4 <property name="interest" 5 value="#{vb1.interest[1]}"/> 6 <property name="score" 7 value="#{vb1.score['英语']}"/> 8 <property name="pageSize" 9 value="#{config['jdbc.pagesize']}"/> 10 </bean>
spring表达式
6 依赖注入
6.1 @Autowired 和 @Qualifier("student")
直接将这两行写到 注入变量上面就行啦;支持 set注入 和 构造器注入
6.2 @Resource(name="student") -->> 一般都用这个
Resource 的包在 servlet-api.jar,所以需要配置一下运行环境;只支持 构造器注入
Tomcat的运行环境自带了 servlet-api.jar 这个包,这个包里面就有使用Resource注解时需要的jar包
如果运行环境不是Tomcat,那么就需要单独导入Resource注解需要的那个jar包,这个jar包是:javax.annotation-api
图解:需要将B依赖注入到A中,在A中需要添加一个类型是B的成员变量,在该成员变量上面添加依赖注解@Resource(name="B的id")即可;不需要在A中为该成员变量实现set方法或者有参构造器(依赖注入的有参构造器),容器如果用到set方法或者有参构造器时它自己会想办法得到的,但是B中必须实现无参构造器,因为spring容器在创建实例时必须用到无参构造器。
7 使用了注解后必须在spring配置文件中配置注解扫描
注解扫描
容器会扫描指定包及其子包下面的所有的类,如果类前面添加了特定的注解(比如@Component),则容器会将这个类纳入容器进行管理(相当于配置了一个bean,其中,bean的id默认值等于首字母小写之后的类名)
<context:component-scan base-package="annotation"/>
本博客源代码:点击前往
转载于:https://www.cnblogs.com/NeverCtrl-C/p/6849953.html
Spring_02 注入类型值、利用引用注入类型值、spring表达式、与类相关的注解、与依赖注入相关的注解、注解扫描...相关推荐
- 【SSM框架系列】Spring IoC(控制反转) DI(依赖注入)
Spring是什么 Spring是分层的 Java SE/EE应用 full-stack 轻量级开源框架,以 IoC(Inverse Of Control:反转控制)和 AOP(Aspect Orie ...
- Spring中的IoC(控制反转)和DI(依赖注入)
一.Spring IoC的基本概念 控制反转(IoC) 是一个比较抽象的概念,它主要用来消减计算机程序的耦合问题,是Spring框架的核心. 依赖注入(DI) 是IoC的另外一种说法,只是从不同的角度 ...
- Spring使用注解配置依赖注入
大部分情况下,使用Spring配置依赖注入时,都是使用注解来进行配置,因为注解比xml要方便和简单.不过类似于数据源对象这种配置信息容易变更的对象除外,这种对象使用xml文件来进行配置会更适合,方便于 ...
- Spring的控制反转(IOC)和依赖注入(DI)具体解释
Spring的控制反转(IOC)和依赖注入(DI)具体解释 首先介绍下(IOC)控制反转: 所谓控制反转就是应用本身不负责依赖对象的创建及维护,依赖对象的创建及维护是由外部容器负责的.这样控制器就有应 ...
- 【IOC 控制反转】Android 事件依赖注入 ( 事件三要素 | 修饰注解的注解 | 事件依赖注入步骤 )
文章目录 总结 一.Android 事件设置三要素 二.修饰注解的注解 三.Android 事件依赖注入步骤 总结 Android 依赖注入的核心就是通过反射获取 类 / 方法 / 字段 上的注解 , ...
- 【SSM框架系列】Spring IoC(控制反转) DI(依赖注入)注解开发
Spring注解开发 Spring是轻代码重配置的框架,配置比较繁重,会影响开发效率.这个时候可以通过注解开发,注解代替xml配置文件可以简化配置,提高开发效率. Spring原始注解 注解分为原始注 ...
- Spring IoC和DI XML方式 注解方式 依赖注入 AOP面向切面
初识Spring框架 时代变迁 原始时代我们用一个jsp搞定一切,但如此开发大型项目时我们遇到了问题,前端美化的代码和后端的代码交织,代码中又有html.js.css样式,又有业务逻辑和数据库访问代码 ...
- Wiring in Spring: @Autowired, @Resource and @Inject 三种注解实现依赖注入
原文链接:Wiring in Spring: @Autowired, @Resource and @Inject 1. Overview 概述 In this Spring Framework tut ...
- Spring学习笔记1:IOC本质和依赖注入
文章目录 1.IOC本质 1.1.拓展:关于Spring Boot 和 Spring Cloud 2.HelloSpring 3.IOC创建对象的方式 4.Spring配置 4.1.别名 4.2.Be ...
- Spring Boot2.x-05Spring Boot基础-使用注解完成依赖注入
文章目录 概述 @Autowired注解 @Autowired的匹配原则 @Autowired的 required 属性 使用@Primary 和@Qualifier消除@Autowired的歧义 @ ...
最新文章
- logback logback.xml常用配置详解(三) filter
- 基于android os 5.1,Android 5.1.1版氢OS快速体验
- WEB服务器、应用程序服务器、HTTP服务器的区别
- [reference]-Features_in_A-profile
- 深度学习中多层全连接网络的梯度下降法及其变式
- JBU联合双边上采样
- 代码版本管理 GitLab介绍
- [Java] 蓝桥杯 BASIC-7 基础练习 特殊的数字
- 目标检测Anchor-free分支:基于关键点的目标检测(最新网络全面超越YOLOv3)
- Golang获取时间戳并增加一天
- python 高性能编程 AOT VS JIT
- 理解高阶函数,修炼编程内功
- 怎么做浪漫表白二维码?给喜欢的人制作一个二维码
- sangerbox平台使用(五)venn图的绘制
- WPF DataGrid 值转换 conver使用
- GMSL高带宽视频数据接入的方法
- 探索云原生技术之基石-Docker容器入门篇(3)
- React单页面图片瀑布流——Macy.js
- github验证邮箱问题
- 结对编程分析——中小学数学卷子自动生成程序
热门文章
- 服务器获取用户信息失败是什么原因,花粉俱乐部获取用户信息失败怎么解决?花粉俱乐部登录失败是什么原因?[多图]...
- jupyterlab中使用conda虚拟环境
- sql从某行开始获取数据
- 遥感数据免费获取网址
- vs C4996的错误解决方法
- linux如何查看vlan信息,dhcp – 通过tcpdump在数据包捕获(Linux)中未显示VLAN标记
- latex 可视化生成表格代码
- java并发编程(11)-- 线程池 拒绝策略
- kubernetes pod介绍
- linux 6.4 nfs配置,RHEL6.4 NFS文件共享服务器搭建