spring學習(二)spring容器搭建與應用
阿新 • • 發佈:2018-12-15
本文只是對spring容器進行操作
最簡單的一個案例:
一、導包
使用IDEA的maven工程
1、在pom.xml中匯入依賴
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>day_demo1</groupId> <artifactId>day_demo1</artifactId> <version>1.0-SNAPSHOT</version> <dependencies> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <version>4.1.4.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>4.1.4.RELEASE</version> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> </dependency> </dependencies> </project>
對應下載的jar包是
下面jar包自動依賴匯入
2、配置檔案的書寫(用的是IDEA,放在resources資料夾下面,檔名applicationContext.xml)
注意:要匯入對應的約束
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://www.springframework.org/schema/beans"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.2.xsd ">
<!-- 將User物件交給spring容器管理 --> <!-- Bean元素:使用該元素描述需要spring容器管理的物件 class屬性:被管理物件的完整類名. name屬性:給被管理的物件起個名字.獲得物件時根據該名稱獲得物件. 可以重複.可以使用特殊字元. id屬性: 與name屬性一模一樣. 名稱不可重複.不能使用特殊字元. 結論: 儘量使用name屬性.
注意的屬性:scope屬性:singleton——單例(預設為單例)
prototype——多例
生命週期屬性:
init-method:Bean初始化的時候執行的方法
destroy-method:Bean銷燬的時候執行的方法,銷燬方法想要執行,需要是單例建立的 Bean 而且在工廠關閉的時候,Bean 才會被銷燬
注意:屬性值必須要與Bean中的方法名要一致。才能夠執行初始化和銷燬的方法。
-->
<bean name="user" class="cn.itcast.bean.User" ></bean>
<!-- 匯入其他spring配置檔案 -->
<import resource="cn/itcast/b_create/applicationContext.xml"/>
</beans>
三、建立實體類(User)
public class User { private String name; private Integer age; public String getName() { return name; } public void setName(String name) { this.name = name; } public Integer getAge() { return age; } public void setAge(Integer age) { this.age = age; } @Override public String toString() { return "User{" + "name='" + name + '\'' + ", age=" + age + '}'; } }
四、寫測試類
import dyh.so.User; import org.junit.Test; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; public class SpringTest { @Test public void fun(){ //1、建立容器物件 ApplicationContext ct = new ClassPathXmlApplicationContext("applicationContext.xml"); //2、向容器要User物件 User user = (User) ct.getBean("user"); user.setAge(12); user.setName("lily"); //3、列印在容器中獲得的物件 System.out.println(user); } }
列印結果: