ICO操作Bean管理(xml注入其它类型属性)

  1. 字面量
  • null值
<property name="address">
<null></null>
</property>
  • 属性值包含特殊符号
<!--
1.把<>进行转义&lt;&gt
2.把带特殊符号内容写到<![CDATA[...]]>
-->
<property name="address">
<value><![CDATA[<<南京>>]]></value>
</property>
  1. 注入属性-外部bean
  • 创建两个类:service类和dao类
  • 在service调用dao里面热点方法

service层

public class UserService {
private UserDao userDao;
public void setUserDao(UserDao userDao) {
this.userDao = userDao;
}
public void add(){
System.out.println("service add...");
userDao.update();
}
}

Dao层

public interface UserDao {
public void update();
}
public class UserDapImpl implements UserDao {
public void update() {
System.out.println("Dao update...");
}
}

xml配置文件

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> <!--1.service和dao对象创建-->
<bean id="userService" class="Spring.Ioc.Day04.service.UserService">
<!--注入userDao对象
name属性:类里面属性名称
ref属性:创建userDao对象bean标签id值
-->
<property name="userDao" ref="userDaoImpl"></property>
</bean>
<bean id="userDaoImpl" class="Spring.Ioc.Day04.dao.UserDapImpl"></bean>
</beans>

test测试

public class testBean {
public static void main(String[] args) {
ApplicationContext context = new ClassPathXmlApplicationContext("bean2.xml");
UserService userService = context.getBean("userService",UserService.class);
userService.add();
}
}
  1. 注入属性-内部bean
  • 一对多关系:部门和员工

    • 一个部门有多个员工,一个员工属于一个部门

Dept类

public class Dept {
private String dname;
public void setDname(String name) {
this.dname = name;
}
@Override
public String toString() {
return "Dept{" +
"dname='" + dname + '\'' +
'}';
}
}

Emp类

public class Emp {
private String ename;
private String gender;
//员工属于一个部门,使用对象形式表示
private Dept dept; public void setDept(Dept dept) {
this.dept = dept;
} public void setEname(String ename) {
this.ename = ename;
}
public void setGender(String gender) {
this.gender = gender;
} public void add(){
System.out.println(ename+"::"+gender+"::"+dept);
}
}

xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> <!--内部bean-->
<bean id="emp" class="Spring.Ioc.Day04.bean.Emp">
<!--设置两个普通属性-->
<property name="ename" value="aaa"></property>
<property name="gender" value="man"></property>
<!--设置对象类型属性-->
<property name="dept">
<bean id="dept" class="Spring.Ioc.Day04.bean.Dept">
<property name="dname" value="安保部"></property>
</bean>
</property>
</bean>
</beans>

test类

    public void test(){
ApplicationContext context = new ClassPathXmlApplicationContext("bean3.xml");
Emp emp = context.getBean("emp",Emp.class);
emp.add();
}
  1. 注入属性-级联赋值
  • 第一种写法

xml

<bean id="emp" class="Spring.Ioc.Day04.bean.Emp">
<property name="ename" value="bbb"></property>
<property name="gender" value="man"></property>
<!--级联赋值-->
<property name="dept" ref="dept"></property>
</bean>
<bean id="dept" class="Spring.Ioc.Day04.bean.Dept">
<property name="dname" value="财务部"></property>
</bean>
  • 第二种写法
  • 需要提供属性的get方法

Emp类

//Dept属性增加get方法
public Dept getDept() {
return dept;
}

xml

    <bean id="emp" class="Spring.Ioc.Day04.bean.Emp">
<property name="ename" value="bbb"></property>
<property name="gender" value="man"></property>
<!--级联赋值-->
<property name="dept.dname" value="技术部"></property>
</bean>

Spring学习日记02_IOC_属性注入_其他类型属性的更多相关文章

  1. Spring学习日记03_IOC_属性注入_集合类型属性

    Ioc操作Bean管理(xml注入集合属性) 注入数组类型属性 注入List集合类型属性 注入Map集合类型属性 Stu类 public class Stu { //1. 数组类型属性 private ...

  2. spring 学习之 bean 的注入方式 property和constructor-arg的使用方式

    spring 学习之 bean 的注入方式 property和constructor-arg的使用方式. bean的注入方式: property 注入是: 通过setxx方法注入. construct ...

  3. Spring 属性注入(四)属性键值对 - PropertyValue

    Spring 属性注入(四)属性键值对 - PropertyValue Spring 系列目录(https://www.cnblogs.com/binarylei/p/10117436.html) P ...

  4. Spring 学习笔记 4. 尚硅谷_佟刚_Spring_属性配置细节

    1,字面值 •字面值:可用字符串表示的值,可以通过 <value> 元素标签或 value 属性进行注入. •基本数据类型及其封装类.String 等类型都可以采取字面值注入的方式 •若字 ...

  5. Spring学习日记01_IOC_xml的三种注入方式

    什么是IOC 控制反转,把对象创建和对象之间的调用过程,交给Spring进行管理 使用IOC目的:为了耦合度降低 做入门案例就是IOC实现 IOC底层原理 xml解析 工厂模式 反射 原始方式 cla ...

  6. Spring 学习笔记 3. 尚硅谷_佟刚_Spring_配置 Bean

    1,bean 的配置 <bean id="helloWorld" class="com.yfy.HelloWorld"> <property ...

  7. Spring学习笔记1—依赖注入(构造器注入、set注入和注解注入)

    什么是依赖注入 在以前的java开发中,某个类中需要依赖其它类的方法时,通常是new一个依赖类再调用类实例的方法,这种方法耦合度太高并且不容易测试,spring提出了依赖注入的思想,即依赖类不由程序员 ...

  8. Spring 学习笔记 数据绑定,校验,BeanWrapper 与属性编辑器

    Spring 数据绑定,校验,BeanWrapper,与属性编辑器 Data Binding 数据绑定(Data binding)非常有用,它可以动态把用户输入与应用程序的域模型(或者你用于处理用户输 ...

  9. Spring学习笔记 5. 尚硅谷_佟刚_Spring_自动装配

    1,回顾以前的做法 一个人有姓名,有住址,有一辆车.其中住址和车也是一个类,这种情况下不用自动装配是十分容易实现的 (1)Person类 package com.zsq; public class P ...

随机推荐

  1. 安装centos7提示 please make your choice from above

    分别输入"1" "2" "q" "yes",如上图 释义如下:

  2. SPEC 2000 整形和浮点性能测试结果是各项基准程序得分的几何平均值,几何平均值是 n 个数连乘之 后再开 n 次根号

    SPEC 2000 能够生成多种格式的测试结果报表,包括 asc,ps,raw,pdf,html 等格式,报 表所在目录为/home/sepc2000­all/result. 整形和浮点性能测试结果是 ...

  3. linux服务之FTP服务篇

    一.FTP协议 FTP服务器(File Transfer Protocol Server)是在互联网上提供文件存储和访问服务的计算机,它们依照FTP协议提供服务. FTP (File Transfer ...

  4. OpenStack挂载ISO镜像解决

    OpenStack挂载ISO镜像解决 Summary 本次在OpenStack平台上进行,基于kvm,挂载iso镜像到OpenStack虚拟机中. 1.针对linux: 上传所需要挂载的iso镜像(必 ...

  5. Linux进阶之排错

    Permission denied 检查selinux长时间没有响应 防火墙 nginx和httpd可以自检nginx和httpd有日志 /var/log/nginx/ /var/log/httpd/ ...

  6. Java 语言的主要特性

    Java语言是简单的 Java语言的语法与C语言和C++语言很接近,使得大多数程序员很容易学习和使用. Java丢弃了C++中很少使用的.很难理解的.令人迷惑的那些特性,如操作符重载.多继承.自动的强 ...

  7. python 中 list 的append与extend区别

    append 添加的是一个对象 extend 添加的是序列与原序列合并

  8. 开源月刊《HelloGitHub》第 62 期

    兴趣是最好的老师,HelloGitHub 让你对编程感兴趣! 简介 分享 GitHub 上有趣.入门级的开源项目. 这里有实战项目.入门教程.黑科技.开源书籍.大厂开源项目等,涵盖多种编程语言 Pyt ...

  9. ubuntu 14.04安装mysql-python

    网上看到的是想安装mysql-python都得安装mysql本身,可是我就不想安装这个数据库,而是用于连接到别的服务器上的mysql,所以下面就是安装过程: 1. 直接运行: pip install ...

  10. Psexec和wmiexec的原理和区别

    PSEXEC 针对远程建立连接的方式有两种,一种先建立IPC通道连接,然后直接使用,操作如下: net use \\192.168.0.1\ipc$ "password" /use ...