[Spring5]IOC容器_Bean管理XML方式_注入其他类型属性
生活随笔
收集整理的這篇文章主要介紹了
[Spring5]IOC容器_Bean管理XML方式_注入其他类型属性
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
xml注入其他屬性
bean:
package com.atguigu.spring;/*** 演示使用set方法進行注入屬性*/ public class Book {private String bname;private String bauthor;private String address;public Book(String address) {this.address = address;}public String getBname() {return bname;}public void setBname(String bname) {this.bname = bname;}public String getBauthor() {return bauthor;}public void setBauthor(String bauthor) {this.bauthor = bauthor;}public void testDemo(){System.out.println(bname + "::" + bauthor+"::"+address);} }1.字面量
(1)null值
<bean id = "book" class = "com.atguigu.spring.Book"><!--使用property完成屬性注入name:類里面屬性名稱value:向屬性注入的值--><property name="bname" value="易筋經"></property><property name="bauthor" value="達摩老祖"></property><!--null值--><property name="address" ><null/></property></bean>(2)屬性值包含特殊符號
<bean id = "book" class = "com.atguigu.spring.Book"><!--使用property完成屬性注入name:類里面屬性名稱value:向屬性注入的值--><property name="bname" value="易筋經"></property><property name="bauthor" value="達摩老祖"></property><!--屬性值包含特殊符號1.把<>進行轉義,<>2.把帶特殊符號內容寫到CDATA<![CDATA[你要寫入的值]]]>--><property name="address" ><value><![CDATA[<<南京>>]]></value></property></bean>測試結果:
注入屬性-外部bean
(1)創建兩個類service類和dao類
(2)在service調用dao里面的方法
package com.atguigu.service;import com.atguigu.dao.UserDao; import com.atguigu.dao.UserDaoImpl;public class UserService {//spring方法//創建UserDao類型屬性,生成set方法private UserDao userDao;public void setUserDao(UserDao userDao){this.userDao = userDao;}public void add01(){System.out.println("service add");userDao.update();}public void add(){System.out.println("service add");//傳統方法//創建UserDao對象UserDao userDao = new UserDaoImpl();userDao.update();} } package com.atguigu.dao;public interface UserDao {public void update();} package com.atguigu.dao;public class UserDaoImpl implements UserDao{@Overridepublic void update() {System.out.println("dao update");} }(3)在spring配置文件中進行配置
<?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 = "com.atguigu.service.UserService"><!--注入userDao對象name屬性值:類里面屬性名稱ref屬性:創建userDao對象bean標簽id值--><property name="userDao" ref = "userDaoImpl"></property></bean><bean id = "userDaoImpl" class = "com.atguigu.dao.UserDaoImpl"></bean></beans>測試:
package com.atguigu.test;import com.atguigu.service.UserService; import com.atguigu.spring.Orders; import org.junit.Test; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext;public class TestBean {@Testpublic void testBean01(){//1.加載spring配置文件ApplicationContext context = new ClassPathXmlApplicationContext("bean2.xml");//2.獲取配置創建的對象UserService userService = context.getBean("userService", UserService.class);userService.add01();}}測試結果:
注入屬性-內部bean
(1)一對多關系:部門和員工
一個部門有多個員工,一個員工屬于一個部門
部門是一,員工是多
(2)在實體類之間表示一對多關系,員工表示所屬部門,使用對象類型屬性進行表示
package com.atguigu.bean;public class Dept {private String dname;public void setDname(String dname){this.dname = dname;}@Overridepublic String toString() {return "Dept{" +"dname='" + dname + '\'' +'}';} } package com.atguigu.bean;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);}}(3)在spring配置文件中進行配置
<?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 = "com.atguigu.bean.Emp"><!--設置兩個普通屬性--><property name="ename" value="lucy"></property><property name="gender" value="女"></property><!--設置對象類型屬性--><property name="dept"><bean id = "dept" class = "com.atguigu.bean.Dept"><property name="dname" value="保安部"></property></bean></property></bean></beans>測試:
@Testpublic void testBean02(){//1.加載spring配置文件ApplicationContext context = new ClassPathXmlApplicationContext("bean3.xml");//2.獲取配置創建的對象Emp emp = context.getBean("emp", Emp.class);emp.add();}注入屬性-級聯賦值
(1)第一種寫法:
<?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 id = "emp" class = "com.atguigu.bean.Emp"><property name="ename" value="lucy"></property><property name="gender" value="女"></property><property name="dept" ref = "dept"></property></bean><bean id = "dept" class = "com.atguigu.bean.Dept"><property name="dname" value="財務部"></property></bean> </beans>(2)第二種寫法:
該方法需要get()方法
package com.atguigu.bean;public class Emp {private String ename;private String gender;//生成dept的get方法public Dept getDept() {return dept;}//員工屬于某一個部門,使用對象形式表示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 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 id = "emp" class = "com.atguigu.bean.Emp"><property name="ename" value="lucy"></property><property name="gender" value="女"></property><property name="dept" ref = "dept"></property><!--需要生成dept的get方法--><property name="dept.dname" value="技術部"></property></bean><bean id = "dept" class = "com.atguigu.bean.Dept"><property name="dname" value="財務部"></property></bean> </beans>總結
以上是生活随笔為你收集整理的[Spring5]IOC容器_Bean管理XML方式_注入其他类型属性的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【集训队互测】ayq 三道题
- 下一篇: [Spring5]IOC容器_Bean管