基于配置文件的Spring注入
基于配置文件的Spring注入
1、依赖注入的概述
依赖注入指的是通过Spring配置文件的方式创建对象时,直接通过配置的方式将数据注入到该对象的标量类型属性,并从Spring容器中获取指定对象注入到该对象的引用属性中。依赖注入的方式有:
①set方法注入; ②构造方法注入 ; ③p标签注入。
2、<property>标签——set方法注入
①name属性:指定set方法实际名; ② value属性:设置标量型数值; ③ref属性:指定注入对象。
<bean name="now" class="java.util.Date"></bean> <bean name="customerService" class="cn.gzsxt.service.CustomerService"> <property name="name" value="zhangsan"></property> <property name="birthday" ref="now"></property> </bean>
(注:使用系统生成的set方法,set方法实际名与其对应属性名相同)
3、<constructor-arg>标签——构造方法注入
①name属性:指定构造方法参数名; ②index属性:指定对应参数的位置;
③value属性:设置标量型数值; ④ref属性:指定注入对象。
<bean name="now" class="java.util.Date"></bean> <bean name="customerService" class="cn.gzsxt.service.CustomerService"> <constructor-arg name="name" value="zhangsan"></constructor-arg> <constructor-arg name="age" value="15"></constructor-arg> <constructor-arg index="2" ref="now"></constructor-arg> </bean>
(注:使用<constructor-arg>标签注入,必须存在与注入参数完全匹配的构造方法)
4、p标签注入
引入p标签,以“p:[属性名]”和“p:[属性名]-ref ”作为<bean>标签的属性来注入数据。
<bean name="now" class="java.util.Date"></bean> <bean name="customerService" class="cn.gzsxt.service.CustomerService" p:name="zhangsan" p:age="15" p:birthday-ref="now"> </bean>
5、注入集合数据
Spring对于注入数组、List、Set、Map、和Properties等结构的数据,分别提供了特定的标签来注入。
<!-- 数组类型 --> <property name="arr01">
<array>
<value>A</value> <value>B</value> <value>C</value>
</array>
</property> <!-- Set类型 --> <property name="set02">
<set>
<value>D</value> <value>E</value> <value>F</value>
</set>
</property> <!-- List类型 --> <property name="list03">
<list>
<value>G</value> <value>H</value> <value>I</value>
</list>
</property> <!-- Map类型 --> <property name="map04">
<map>
<entry key="name" value="zhangsan"/>
<entry key="birthday" value-ref="now"></entry>
</map>
</property> <!-- Properties类型 --> <property name="props05">
<props>
<prop key="id">1</prop> <prop key="name">zhangsan</prop>
</props>
</property>
6、注入Properties文件的数据
Spring对Properties文件的支持,是基于opertySourcesPlaceholderConfigurer类实现的;通过Properties文件注入,必须指定其文件的路径。
<bean class="org.springframework.context.support.PropertySourcesPlaceholderConfigurer">
<property name="locations" value="classpath:sys.properties"></property>
<property name="fileEncoding" value="UTF-8"></property>
</bean>
<bean name="customerService" class="cn.gzsxt.service.CustomerService">
<property name="name" value="${customer.name}"></property>
<property name="age" value="${customer.age}"></property>
</bean>
(注:①加载Properties文件可以使用<context:property-placeholder file-encoding = "UTF-8" location = "classpath:sys.properties" />标签代替;②Properties文件默认编码格式为ISO-8859-1,需要设置为其他编码才支持中文)
———————————————————————————————————————————————————————————————————
The end @ 万有引力+
-
-
-
-
-
基于配置文件的Spring注入的更多相关文章
- Spring配置文件解析--依赖注入
1.构造器注入基于构造器的DI通过调用带参数的构造器来实现,每个参数代表着一个依赖.此外,还可通过给stattic工厂方法传参数来构造bean.构造器参数解析根据参数类型进行匹配,如果bean的构造器 ...
- SSM-Spring-07:Spring基于注解的di注入
------------吾亦无他,唯手熟尔,谦卑若愚,好学若饥------------- 注解: 说起注解,哇哦,每个人都或多或少的用到过 像什么@Overried,@Test,@Param等等之前就 ...
- 07 Spring框架 依赖注入(四)基于注解的依赖注入
前面几节我们都在使用xml进行依赖的注入,但是在实际的开发中我们往往偏爱于使用注解进行依赖注入,因为这样更符合我们人的思维,并且更加快捷,本节就来讲述Spring基于注解的依赖注入: 信息注入注解 @ ...
- Spring:基于注解的依赖注入的使用
1.什么是pojo?什么是bean? 首先,在之前几篇Spring的介绍文章当中,自己都提到了一个名词叫做POJO类,但是在回顾Spring的注解的使用的时候,去形容java当中的对象还有一个名词是叫 ...
- Spring:基于配置文件的创建对象的各种方式
在Spring3.0之前,Spring主要创建对象的方法是基于配置文件的,即在配置文件中为对象进行注册,并且可以在配置文件当中为对象的字段或者称之为属性值进行赋值,接下来首先介绍基于配置文件的创建对象 ...
- Spring AOP基于配置文件的面向方法的切面
Spring AOP基于配置文件的面向方法的切面 Spring AOP根据执行的时间点可以分为around.before和after几种方式. around为方法前后均执行 before为方法前执行 ...
- Spring学习笔记--Spring配置文件和依赖注入
Spring配置文件 1.alias:设置别名,为bean设置别名,并且可以设置多个别名; <!-- 设置别名 --> <alias name="user" al ...
- spring Quartz基于配置文件和注解的实现
这里仅仅是做简单的记录怎样实现. 一.基于配置文件的实现 ①编写须要调度的类 package com.study; import org.springframework.scheduling.anno ...
- Spring(二十):Spring AOP(四):基于配置文件的方式来配置 AOP
基于配置文件的方式来配置 AOP 前边三个章节<Spring(十七):Spring AOP(一):简介>.<Spring(十八):Spring AOP(二):通知(前置.后置.返回. ...
随机推荐
- js中类似null==flase的比较图集
以上是比较全的图集了,大家可以自行测试.
- mysql表类型导致的 setRollbackOnly() 事务不回滚
在SpringBoot 中,使用事务非常简单,只需在方法上面加入 @Transactional 注解就可以实现.也可加在类上,此时则类中所有方法都支持事务. 而当我使用下面代码时,发现事务却没有回滚 ...
- Google搜索中的突变XSS-JavaScript Library Introduced XSS Flaw in Google Search
前言2018年9月26日,开源Closure库(最初由谷歌创建并用于谷歌搜索)的一名开发人员创建了一个提交,删除了部分输入过滤.据推测,这是因为开发人员在用户界面设计方面出现了问题.但此次提交的开发人 ...
- EntityFramework Core:版本不一致问题
code first 更新数据库时候报版本不对或者未找到错误 解决方法: 在项目文件中添加以下节点: <PropertyGroup> <OutputType>Library&l ...
- jquery的输入框自动补全功能+ajax
jquery的输入框自动补全功能+ajax 2017年05月10日 18:51:39 辣姐什么鬼 阅读数:1461 标签: web前端 更多 个人分类: web前端 内容参考网友文章写成,原博的链 ...
- Go 初体验 - 并发与锁.3 - 竞态
竞态,就是多个协程同时访问临界区,由并发而产生的数据不同步的状态. 这个说的有点low,没办法,我就是这么表达的,官方的请度娘. 先上代码: 输出: 为何不是1000?就是因为竞态,发生竞态后,最终的 ...
- URLs ...
各浏览器对ES6的支持 https://blog.csdn.net/lpw_cn/article/details/84789183 http://kangax.github.io/compat-tab ...
- pymysql.err.InternalError: Packet sequence number wrong - got 45 expected 0
原因: 使用了多线程,多线程共享了同一个数据库连接,但每个execute前没有加上互斥锁 方法: 方法一:每个execute前加上互斥锁 lock.acquire() cursor.e ...
- NN元数据工作机制
HDFS的实现思路:1.HDFS通过分布式集群来存储文件,为客户端提供便捷的访问方式2.文件存储到HDFS集群去的时候,被切分为block3.HDFS存放在若干datanode节点 上4.HDFS文件 ...
- nginx ../logs/nginx.pid" failed (2: No such file or directory)
[1]nginx.pid相关 (1)可能出现两种场景: 1.1 nginx.pid文件不存在 发生现象:nginx: [error] open() "/usr/local/lib/ubcsr ...