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