IOC操作Bean管理XML方式(创建对象和set注入属性)
目錄
1.什么是 Bean 管理:
(1)通過 Spring 創(chuàng)建對(duì)象
(2)通過 Spring 注入屬性
2.IOC 操作 Bean 管理有兩種方式:
(1)基于 xml 配置文件方式實(shí)現(xiàn)
(1.1)基于 xml 方式創(chuàng)建對(duì)象
(1.2)基于 xml 方式注入屬性
(2)基于注解方式實(shí)現(xiàn)
1.什么是 Bean 管理:
Bean 管理指的是兩個(gè)操作:
(1)通過 Spring 創(chuàng)建對(duì)象
(2)通過 Spring 注入屬性
?
2.IOC 操作 Bean 管理有兩種方式:
(1)基于 xml 配置文件方式實(shí)現(xiàn)
(1.1)基于 xml 方式創(chuàng)建對(duì)象
- 在項(xiàng)目中找到 xxx.xml 文件,通過使用<bean></bean> 標(biāo)簽,在標(biāo)簽內(nèi)添加對(duì)應(yīng)屬性,就可以實(shí)現(xiàn)對(duì)象的創(chuàng)建
- 【Bean標(biāo)簽基本屬性的認(rèn)識(shí)】
- * id 屬性:唯一標(biāo)識(shí)
在java 代碼里,.getBean方法就是通過這個(gè)唯一的標(biāo)識(shí)找到<bean>標(biāo)簽的id屬性
- *class 屬性:類的全路徑
例如一個(gè)項(xiàng)目結(jié)構(gòu)如下:
那么 User 這個(gè)類的全路徑為:
com.lbj.spring5.User?*name 屬性(少用,曾用于Struts1框架):與 id 屬性的區(qū)別在于 name 屬性內(nèi)可以添加特殊符號(hào)
?
- 創(chuàng)建對(duì)象的時(shí)候,默認(rèn)是執(zhí)行無參數(shù)構(gòu)造方法
一個(gè)類里面是有默認(rèn)的一個(gè)公共無參構(gòu)造方法,同樣,Spring框架也是默認(rèn)執(zhí)行無參構(gòu)造方法
例子:
在User類中添加如下代碼:
package com.lbj.spring5;/*** Created by 14811 on 2020/11/25.*/ public class User {private String userName;// alt+insert 創(chuàng)建一個(gè)有參構(gòu)造方法//此時(shí)如果不聲明無參構(gòu)造方法,意味著無參構(gòu)造方法不存在public User(String userName) {this.userName = userName;}//創(chuàng)建一個(gè)普通方法等待調(diào)用public void add(){System.out.println("實(shí)現(xiàn)了spring");} }?運(yùn)行 TestSpring5 中的testAdd()測試方法,發(fā)現(xiàn)報(bào)錯(cuò),原因:沒有無參構(gòu)造方法卻調(diào)用了有參構(gòu)造方法
(1.2)基于 xml 方式注入屬性
DI(dependency injection):依賴注入
DI是IOC 中的一種具體實(shí)現(xiàn)
- 第一種注入方式:使用set方法進(jìn)行注入
重新創(chuàng)建一個(gè)類專門演示我們?cè)跊]學(xué)習(xí)Spring之前是怎樣實(shí)現(xiàn)這個(gè)過程:
在com.lbj.spring5下創(chuàng)建一個(gè) Book 類
Book類的代碼如下:
package com.lbj.spring5;public class Book {//在類中創(chuàng)建屬性:往book類中寫入一個(gè)屬性private String bname;//創(chuàng)建屬性對(duì)應(yīng)的set方法:set方法注入屬性public void setBname(String bname) {this.bname = bname;}public static void main(String[] args) {Book book=new Book();book.setBname("紅樓夢");} }- 接下來我們體驗(yàn)一下學(xué)習(xí)Spring 框架后
我們是怎樣在Spring 配置文件【1】配置對(duì)象創(chuàng)建,【2】配置屬性注入:
結(jié)構(gòu)圖:
第一步:在bean1.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"><!--配置Book對(duì)象創(chuàng)建--><bean id="book" class="com.lbj.spring5.Book"><!--使用property完成屬性注入name:類里面的屬性名稱value:向?qū)傩宰⑷氲闹?-><property name="bname" value="紅樓夢"></property></bean> </beans>第二步:在Book類中:
package com.lbj.spring5;public class Book {//在類中創(chuàng)建屬性:往book類中寫入一個(gè)屬性private String bname;//創(chuàng)建屬性對(duì)應(yīng)的set方法:set方法注入屬性public void setBname(String bname) {this.bname = bname;}public void testBook(){System.out.println(bname);}}在測試類 TestSpring5中:
package com.lbj.spring5.testdemo;import com.lbj.spring5.Book; import org.junit.Test; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext;public class TestSpring5 {@Testpublic void testBook1(){//1.加載spring配置文件ApplicationContext context=new ClassPathXmlApplicationContext("bean1.xml");//2.獲取配置創(chuàng)建的對(duì)象,通過context得到對(duì)象Book book=context.getBean("book", Book.class);//3.做輸出System.out.println(book);//4.通過book調(diào)用testBook()方法book.testBook();} }?結(jié)果:
?
?
?
- 第二種注入方式:有參構(gòu)造方法注入:
代碼如下:
package com.lbj.spring5; public class Book {//往book類中寫入一個(gè)屬性private String bname;//有參數(shù)的構(gòu)造方法注入屬性public Book(String bname) {this.bname = bname;}public static void main(String[] args) {Book book=new Book("紅樓夢");} }?
(2)基于注解方式實(shí)現(xiàn)
?
詳情在博客下一章
?
?
?
?
?
?
?
?
?
?
?
總結(jié)
以上是生活随笔為你收集整理的IOC操作Bean管理XML方式(创建对象和set注入属性)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: JAVA入门级教学之(简单的程序测试)
- 下一篇: IOC操作Bean管理XML方式(xml