当前位置: 首页 > news >正文

福建漳州网站建设费用seo外链工具源码

福建漳州网站建设费用,seo外链工具源码,网站建设公司专业网站费用报价,免费做情网站这篇文章,详细介绍一下Spring框架中如何注入各种数据类型,包含:注入基本数据类型、数组、集合、Map映射、Property属性、注入空字符串、注入null值、注入特殊字符等内容,以及如何使用命名空间进行依赖注入。 目录 一、注入各种数据…

这篇文章,详细介绍一下Spring框架中如何注入各种数据类型,包含:注入基本数据类型、数组、集合、Map映射、Property属性、注入空字符串、注入null值、注入特殊字符等内容,以及如何使用命名空间进行依赖注入。

目录

一、注入各种数据类型

1.1、注入基本类型

1.2、注入Bean对象

(1)外部注入Bean方式

(2)内部注入Bean方式

1.3、注入数组

1.4、注入List集合

1.5、注入Set集合

1.6、注入Map

1.7、注入Property属性

1.8、注入null值和空值

1.9、注入特殊字符

二、命名空间

2.1、p命名空间

2.2、c命名空间

2.3、util命名空间


一、注入各种数据类型

1.1、注入基本类型

注入基本数据类型,既可以采用setter方法注入,也可以采用构造方法注入,两种方式都有不同的限制条件:

  • setter方法注入:必须确保注入的属性存在setXXX()方法,否则注入失败。
  • 构造方法注入:必须确保Bean对象具有相应的有参构造方法,否则注入失败。

这里我以setter方法注入为案例:


以上,就是setter方法注入的用法,只要在Spring的XML配置文件里面采用【<property>】标签,指定属性名称和属性值就可以啦。

1.2、注入Bean对象


在实际开发过程中,我们一个类里面会用到另外一个类的对象,这个时候就是注入引用对象类型,也就是我们说的Bean对象。注入Bean对象,首先需要确保Bean对象已经被实例化了,然后另外一个Bean里面才能够注入。

注入Bean分为两种:

  • 外部注入Bean方式
  • 内部注入Bean方式

(1)外部注入Bean方式

外部注入Bean方式,是指:A类中使用了B类的对象,那么首先需要将B类对象进行实例化,然后A类直接引用B类实例化之后的对象。

这里举个栗子,员工和部门的关系,我们就可以两个类来表示,一个是【Emp】员工类,另外一个是【Dept】部门类,案例代码如下所示:

创建【Dept】类:

public class Dept {private Integer deptId;private String deptName;public Integer getDeptId() {return deptId;}public void setDeptId(Integer deptId) {this.deptId = deptId;}public String getDeptName() {return deptName;}public void setDeptName(String deptName) {this.deptName = deptName;}
}

创建【Emp】类:

public class Emp {private Integer empId;private String empName;private Dept dept; // 部门类的对象public Integer getEmpId() {return empId;}public void setEmpId(Integer empId) {this.empId = empId;}public String getEmpName() {return empName;}public void setEmpName(String empName) {this.empName = empName;}public Dept getDept() {return dept;}public void setDept(Dept dept) {this.dept = dept;}
}

添加XML配置


我们把这种直接引用外部Bean的方式,叫做注入外部Bean。

可以发现,我们这里使用的【<property>】标签是通过【ref】属性进行注入Bean的,而不是【value】属性,相信你应该知道这两个的区别了吧。

  • value属性:用于注入基本数据类型、字符串之类的。
  • ref属性:用于引用另外一个Bean的实例对象。

(2)内部注入Bean方式

外部注入Bean方式是引用外部的一个Bean实例,那内部注入Bean就是不引用外部的Bean呗,而是直接在当前的Bean里面进行实例化。

具体XML配置如下所示:

<!-- 内部注入Bean方式 -->
<bean id="emp2" class="com.spring.demo.pojo.Emp"><!-- 属性赋值 --><property name="empId" value="1001"/><property name="empName" value="张三"/><!-- 注入Bean对象 --><property name="dept"><bean class="com.spring.demo.pojo.Dept"><!-- 属性赋值 --><property name="deptId" value="2001"/><property name="deptName" value="研发部"/></bean></property>
</bean>

是不是很简单,内部注入bean其实就是把另外一个bean的配置移到【<property>】标签之间。

1.3、注入数组

如果类中的某个属性是数组,那就不能和之前一样编写了,因为之前的都是注入单独一个的值,而数组可以有多个值,那么如何注入数组呢???

注入数组,可以借助【<array>】标签,看个案例就知道啦。


采用【<array>】标签告诉Spring,当前这个属性是数组类型的,通过【<value>】标签,告诉Spring数组里面的数值是哪些。

1.4、注入List集合

注入集合和注入数组类似的,只不过注入List集合是采用【<list>】标签进行标识。

<!-- 注入List集合 -->
<bean id="collectionType1" class="com.spring.demo.pojo.CollectionType"><!-- 注入List集合 --><property name="listData"><list><value>张三</value><value>李四</value><value>王五</value></list></property>
</bean>

1.5、注入Set集合

注入Set集合是采用【<set>】标签进行标识。

<!-- 注入Set集合 -->
<bean id="collectionType2" class="com.spring.demo.pojo.CollectionType"><!-- 注入Set集合 --><property name="setData"><set><value>张三</value><value>李四</value><value>王五</value></set></property>
</bean>

1.6、注入Map

注入map比较特殊,因为map和List、Set集合不同,map是具有key-value形式的数据,所以注入map集合,需要采用【<map>】标签定义,然后通过【<entry>】标签进行取值。

【<entry>】标签具有如下属性:

  • key属性:指定map集合的key值。
  • value属性:指定map集合的value值。
  • ref属性:指定map集合的value值(引用另外一个bean对象)。
  • key-ref属性:key值引用另外一个Bean对象。
  • value-ref属性:value值引用另外一个Bean对象。

具体案例代码如下所示:

<!-- 注入Map集合 -->
<bean id="collectionType3" class="com.spring.demo.pojo.CollectionType"><!-- 注入Map集合 --><property name="map"><map><entry key="1" value="Tom"/><entry key="2" value="Jerry"/><entry key="3" value="Jack"/></map></property>
</bean>

1.7、注入Property属性

Property是HashMap的一个子类,它也是满足key-value形式的数据集合,通过【<props>】标签定义,然后采用【<prop>】标签进行key和value的赋值。另外,还可以读取外部的【property】文件的内容进行注入。

注入Property属性案例:

<!-- 注入Property -->
<bean id="collectionType4" class="com.spring.demo.pojo.CollectionType"><!-- 注入Property --><property name="properties"><props><prop key="1">Tom</prop><prop key="2">Jerry</prop><prop key="3">Jack</prop></props></property>
</bean>

如何定义Property文件???

首先需要创建一个以【.properties】为后缀的文件。

然后在文件中,通过【key=value】的格式,编写对应的数据内容。

注意:一行只能编写一个【key=value】。

从Property文件读取属性案例:

  • 在【src/main/resources】目录下,创建一个【jdbc.properties】文件
driver=com.jdbc.mysql.Driver
url=jdbc:mysql://localhost:3306/test
username=root
password=root
  • 创建【JdbcProperties】类
public class JdbcProperties {private String driver;private String url;private String username;private String password;// setter and getter
}
  • XML配置文件中添加context命名空间
  • 注入属性
<?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/beanshttp://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context.xsd"><!-- 注入Property --><bean id="collectionType4" class="com.spring.demo.pojo.CollectionType"><!-- 注入Property --><property name="properties"><props><prop key="1">Tom</prop><prop key="2">Jerry</prop><prop key="3">Jack</prop></props></property></bean><!-- 读取外部的Properties文件 --><context:property-placeholder location="jdbc.properties" /><bean id="jdbcProperties" class="com.spring.demo.pojo.JdbcProperties"><!-- 从外部Property文件注入 --><property name="driver" value="${driver}"/><property name="url" value="${url}"/><property name="username" value="${username}"/><property name="password" value="${password}"/></bean></beans>

以上,就是注入Property类型。

1.8、注入null值和空值

如何注入null值呢???通过【<null/>】标签即可注入null值。

<!-- 注入null值 -->
<bean id="nullAndEmpty" class="com.spring.demo.pojo.NullAndEmpty"><!-- 注入null值 --><property name="name"><null/></property>
</bean>

如何注入空字符串呢???直接设置【value】属性等于空即可。

<!-- 注入空字符串 -->
<bean id="nullAndEmpty2" class="com.spring.demo.pojo.NullAndEmpty"><!-- 注入空字符串 --><property name="name" value=""/>
</bean>

1.9、注入特殊字符

在XML文件里面,有时候注入的值存在一些特殊字符(例如:<,>符号),此时XML文件会解析失败,因为(<,>符号)是XML文件规定的标签开始结束标记,我们不能在注入的值里面使用???那要如何解决这个问题呢???

解决办法:

  • 可以采用【<![CDATA[ 这里写需要注入的值 ]]>】标签进行转义,这是CDATA是XML规范提供的。

举例如下:


 以上,就是注入特殊字符的方式。

二、命名空间

从第一部分,我们学习了各种数据类型的注入方式,可以看到,每次我们注入一个属性的时候,都需要编写很多的【<property>】标签,很明显,太麻烦了,所以Spring也支持通过命名空间的方式简写注入。下面介绍一下Spring注入的一些命名空间简写方式。

2.1、p命名空间

这里说的【p命名空间】是用于简写【<property>】标签注入,使用命名空间,首先需要在XML配置文件里面添加命名空间前缀。

添加【p命名空间】前缀

  • 需要添加【xmlns:p】开头的前缀。
<?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:p="http://www.springframework.org/schema/p"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsd"></beans>

p命名空间使用案例

<?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:p="http://www.springframework.org/schema/p"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsd"><!-- p命名空间注入 --><bean id="user" class="com.spring.demo.pojo.User"p:uid="1001"p:username="张三"p:password="123456"/></beans>

上面,可以看到我们只需要在【<bean>】标签里面,采用【p:属性名称】的方式就可以实现注入,而不需要编写【<property>】标签。

2.2、c命名空间

这里说的【c命名空间】是用于简写【<constructor-arg>】标签注入。

添加【c命名空间】前缀

  • 需要添加【xmlns:c】开头的前缀。
<?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:c="http://www.springframework.org/schema/c"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsd"></beans>

c命名空间使用

<?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:c="http://www.springframework.org/schema/c"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsd"><!-- c命名空间注入: 根据位置 --><bean id="cnamespace" class="com.spring.demo.pojo.Cnamespace" c:_0="1001" c:_1="李四" /><!-- c命名空间注入: 根据名称 --><bean id="cnamespace1" class="com.spring.demo.pojo.Cnamespace" c:id="1001" c:name="李四" /></beans>

【c命名空间】是构造方法注入的简写,可以两种方式:

  • 根据参数位置注入:【c:_下标位置】
  • 根据参数名称注入:【c:属性名称】

2.3、util命名空间

util命名空间,可以将注入集合的那些部分提取出一个公共内容,然后其他地方需要注入的时候,就可以直接引用,而不需要重复的编写。

添加【util命名空间】前缀

  • 需要添加【xmlns:util】开头的前缀。
<?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:util="http://www.springframework.org/schema/util"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/utilhttp://www.springframework.org/schema/util/spring-util-4.0.xsd"></beans>

util命名空间的使用


util命名空间,常用的有如下几个:

【<util:list>】、【<util:set>】、【<util:map>】、【<util:properties>】


综上,这篇文章,详细介绍一下Spring框架中如何注入各种数据类型,包含:注入基本数据类型、数组、集合、Map映射、Property属性、注入空字符串、注入null值、注入特殊字符等内容,以及如何使用命名空间进行依赖注入。

http://www.zhongyajixie.com/news/13763.html

相关文章:

  • 网站的功能和作用是什么广州推广系统
  • 网站包括什么东莞互联网推广
  • wordpress商业版廊坊seo排名外包
  • 什么是网站建设与优化seo包括哪些方面
  • 做订票网站设计要多久什么推广方式能快速引流
  • 做污水处理的 登录哪个网站秦皇岛seo排名
  • wordpress 宕机原因哈尔滨seo优化培训
  • 国外时尚设计网站爱站网关键词挖掘查询工具
  • 郑州门户网站建设近期时事新闻10条
  • 池州哪里做网站seo优化大公司排名
  • 网站建设的原因seo软件排行榜前十名
  • 建个网站 费用如何在互联网推广自己的产品
  • 网店网站建设策划书案例百度url提交
  • 网监备案网站更换域名org域名注册
  • 改变字体颜色的网站网站域名怎么查询
  • 成都网站制作公司报价广告投放是做什么的
  • 帮公司做网站赚钱吗免费域名注册官网
  • 网站备案密码使用软文代发平台
  • 免费推广选择推广途径与原因seo优化培训多少钱
  • 制作网站的公司办什么营业执照广东seo推广
  • 大学网页设计与制作作业网站seo的优化怎么做
  • 网站建设的过程深圳seo
  • 网站备案变更主体seo电商运营是什么意思
  • 无代码企业网站开发怎么推广公众号让人关注
  • 建设网站里的会员系统seo流量优化
  • 泰兴建设局网站游戏交易平台
  • cms开发网站排名优化系统
  • 花钱人做的网站做好后算谁的什么建站程序最利于seo
  • 凡科网做的网站怎么样北京建公司网站价格
  • 虞城做网站超八成搜索网站存在信息泄露问题