2023-01-13 一、Spring 1、Spring簡介 (1)Spring是一個為簡化企業級開發而生的開源框架。 (2)Spring是一個IOC(DI)和AOP容器框架。 IOC:Inversion of Contriol(控制反轉,即將對象的控制權交給Spring) AOP:Aspect-O ...
2023-01-13
一、Spring
1、Spring簡介
(1)Spring是一個為簡化企業級開發而生的開源框架。
(2)Spring是一個IOC(DI)和AOP容器框架。
IOC:Inversion of Contriol(控制反轉,即將對象的控制權交給Spring)
AOP:Aspect-Oriented Programming,面向切麵編程
DI:Dependency Injection(依賴註入)
(3)官方文檔:
http://www.spring.io
2、搭建Spring框架步驟
(1)導入jar包
jar包可以在maven中查找
<!-- https://mvnrepository.com/artifact/org.springframework/spring-context --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>5.3.10</version> </dependency>
(2)編寫核心配置文件
將配置文件命名為“applicationContext.xml(或者beans.xml或者spring.xml”
配置文件的路徑在“src/main/resources”
(3)使用核心類庫
3、創建Spring框架的步驟
(1)創建一個maven工程,命名為“day05_spring”
在“day05_spring/pom.xml”中添加jar包
<dependencies> <!-- https://mvnrepository.com/artifact/org.springframework/spring-context --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>5.3.10</version> </dependency> <!-- https://mvnrepository.com/artifact/junit/junit --> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> <scope>test</scope> </dependency> </dependencies>
(2)在“day05_spring/src/main/java/com.hh.spring.pojo”下創建“Student”類
public class Student { private Integer stuId; private String stuName; public Student() { } public Student(Integer stuId, String stuName) { this.stuId = stuId; this.stuName = stuName; } public Integer getStuId() { return stuId; } public void setStuId(Integer stuId) { this.stuId = stuId; } public String getStuName() { return stuName; } public void setStuName(String stuName) { this.stuName = stuName; } @Override public String toString() { return "Student{" + "stuId=" + stuId + ", stuName='" + stuName + '\'' + '}'; } }
(3)在“day05_spring/src/main/resources”中創建“applicationContext.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"> <!-- 將對象裝配到IOC容器中--> <bean id="stuZhangsan" class="com.hh.spring.pojo.Student"> <property name="stuId" value="101"></property> <property name="stuName" value="zhangsan"></property> </bean> </beans>
(4)在“day05_spring/src/test/java”中設置測試類
public class TestSpring { @Test public void testSpring(){ //創建容器對象 ApplicationContext iocObj = new ClassPathXmlApplicationContext("applicationContext.xml"); //通過容器對象,獲取需要對象 Student stuZhangsan = (Student)iocObj.getBean("stuZhangsan"); System.out.println("stuZhangsan = " + stuZhangsan); } }
4、Spring的特性
(1)非侵入式:基於Spring開發的應用中的對象可以不依賴於Spring的API。
(2)容器:Spring是一個容器,因為它包含並且管理應用對象的生命周期。
(3)組件化:Spring實現了使用簡單的組件配置組合成一個複雜的應用,在Spring中可以使用XML和java註解組合這些對象。
(4)一站式:在IOC和AOP的基礎上可以整合各種企業應用的開源框架和優秀的第三方類庫(實際上Spring自身也提供了表述層的SpringMVC和持久層的JDBCTemplate)。
5、Spring中getBean三種方式
(1)方式一
getBean(String beanId):通過beanId獲取對象
不足:需要強制類型轉換,不靈活
(2)方式二
getBean(Class clazz):通過Class方式獲取對象
不足:容器中有多個相同類型bean的時候,會報錯“expected single matching bean but found 2”
(3)方式三
getBean(String beanId,Clazz clazz):通過beanId和Class獲取對象
常用
測試類的關鍵代碼
Student stuZhangsan = iocObj.getBean("stuZhangsan", Student.class); System.out.println("stuZhangsan = " + stuZhangsan);
6、Spring中的標簽
(1)屬性
①id:bean的唯一標識
②class:定義bean的類型(指定class全類名)
(2)子標簽
①property:為對象中屬性賦值(set註入)
name屬性:設置屬性名稱
value屬性:設置屬性數值