javascript
Spring第一讲:初步了解Spring
一、什么是Spring,什么是bean?
Spring是一種框架,Spring框架主要提供了IoC容器、AOP、數據訪問、Web開發、消息、測試等相關技術的支持。每一個沒Spring管理的 Java對象都稱之為bean
.利用Spring容器管理Bean方法:
二、今天我們要學習的內容
采用Spring配置文件管理Bean
三、創建項目
創建好項目后,第一步在pom文件里面添加相關的依賴
附上pom文件代碼:
<?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>net.lbd.spring</groupId><artifactId>SpringDemo2020</artifactId><version>1.0-SNAPSHOT</version><properties><!-- spring.version --><spring.version>5.3.4</spring.version></properties><dependencies><!--Spring核心--><dependency><groupId>org.springframework</groupId><artifactId>spring-core</artifactId><version>${spring.version}</version></dependency><!--Spring Bean--><dependency><groupId>org.springframework</groupId><artifactId>spring-beans</artifactId><version>${spring.version}</version></dependency><!--Spring容器--><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>${spring.version}</version></dependency><!--Spring測試--><dependency><groupId>org.springframework</groupId><artifactId>spring-test</artifactId><version>${spring.version}</version></dependency><!--單元測試--><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.13</version><scope>test</scope></dependency></dependencies> </project>?
新建包net.lbd.spring.lesson01
?
在新建的包下面新建SlayDragonQuest類文件
?
在新建BraveKnight類文件
BraveKnight里面的代碼? :
package net.lbd.spring.lesson01;public class BraveKnight {private SlayDragonQuest slayDragonQuest;public void setSlayDragonQuest(SlayDragonQuest slayDragonQuest) {this.slayDragonQuest = slayDragonQuest;}public void embarkOnQuest(){slayDragonQuest.embark();} }?
在test/java下面新建一個表
?
在新建好的包下面新建TestbraveKnight類文件
TestbraveKnight里面的代碼:
package net.lbd.spring.lesson01;import org.junit.Test;public class TestBraveKnightOld {@Testpublic void testBraveKnight(){//創建殺龍任務SlayDragonQuest slayDragonQuest = new SlayDragonQuest();//創建勇敢騎士對象BraveKnight braveKnight = new BraveKnight();//設置勇敢騎士的殺龍任務屬性braveKnight.setSlayDragonQuest(slayDragonQuest);//勇敢騎士執行任務braveKnight.embarkOnQuest();} }創建log4.properties文件
log4.properties文件代碼:
log4j.rootLogger=WARN, stdout, logfile log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.layout=org.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern=%d %p [%c] - %m%n log4j.appender.logfile=org.apache.log4j.FileAppender log4j.appender.logfile.File=target/spring.log log4j.appender.logfile.layout=org.apache.log4j.PatternLayout log4j.appender.logfile.layout.ConversionPattern=%d %p [%c] - %m%n進去名字隨意,點擊OK
?
?
?
代碼:
<?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="slayDragonQuest" class="net.lbd.spring.lesson01.SlayDragonQuest"/><bean id="Mike" class="net.lbd.spring.lesson01.BraveKnight"><property name="slayDragonQuest" ref="slayDragonQuest"/></bean></beans>創建類文件
代碼:
package net.lbd.spring.lesson01;import org.junit.After; import org.junit.Before; import org.junit.Test; import org.springframework.context.annotation.ClassPathBeanDefinitionScanner; import org.springframework.context.support.ClassPathXmlApplicationContext;/*** 功能:采用Spring容器測試勇敢騎士類*/public class TestBraveKnightNew {private ClassPathXmlApplicationContext context;//基于類路徑XML配置文件的應用容器@Beforepublic void init(){//基于類路徑配置文件的應用容器context = new ClassPathXmlApplicationContext("xmlconfig/spring-config.xml");//提示用戶System.out.println("Spring應用容器已經創建!");}@Testpublic void testBraveKnight(){//根據名稱從應用容器中獲取勇敢騎士對象BraveKnight braveKnight = (BraveKnight) context.getBean("Mike");//勇敢騎士執行任務BraveKnight.embarkOnQuest();}@Afterpublic void destroy(){context.close();//提示用戶System.out.println("Spring應用容器已經關閉!");} }運行測試方法,查看結果
?
在spring配置文件里面在創建兩個勇敢騎士bean
?
修改測試類
?
運行查看結果
?
?
新建這倆個類
?
代碼:
package net.lbd.spring.lesson01; /*** 功能:拯救少女任務類* 作者:* 日期:*/ public class RescueDamselQuest {public void embark() {System.out.println("執行拯救少女任務。");} }?
package net.lbd.spring.lesson01;/*** 功能:拯救少女騎士類* 作者:* 日期:*/ public class DamselRescuingKnight {private RescueDamselQuest rescueDamselQuest;public DamselRescuingKnight(RescueDamselQuest rescueDamselQuest) {this.rescueDamselQuest = rescueDamselQuest;}public void embarkOnQuest() {rescueDamselQuest.embark();} }在Spring配置文件里創建拯救少女騎士Bean
附上代碼:
<bean id="rescueDamselQuest" class="net.lbd.spring.lesson01.RescueDamselQuest"/> <bean id="damselRescuingKnight" class="net.lbd.spring.lesson01.DamselRescuingKnight"><constructor-arg ref="rescueDamselQuest"/> </bean>創建TestDamselRescuingKnightOld
?
附上代碼:
package net.lbd.spring.lesson01;import net.lbd.spring.lesson01.DamselRescuingKnight; import net.lbd.spring.lesson01.RescueDamselQuest; import org.junit.Test;/*** 功能:采用傳統方式測試拯救少女騎士類* 作者:* 日期:*/ public class TestDamselRescuingKnightOld {@Testpublic void testDamselRescuingKnight() {// 創建拯救少女任務對象RescueDamselQuest rescueDamselQuest = new RescueDamselQuest();// 創建拯救少女騎士對象DamselRescuingKnight damselRescuingKnight = new DamselRescuingKnight(rescueDamselQuest);// 拯救少女騎士執行任務damselRescuingKnight.embarkOnQuest();} }?
運行測試,查看結果
?
?
附上代碼:
package net.lbd.spirng.lesson01;
import net.lbd.spring.lesson01.DamselRescuingKnight;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.springframework.context.support.ClassPathXmlApplicationContext;
/**
?* 功能:采用Spring容器測試拯救少女騎士類
?* 作者:
?* 日期:
?*/
public class TestDamselRescuingKnightNew {
? ? private ClassPathXmlApplicationContext context;
? ? @Before
? ? public void init() {
? ? ? ? // 基于Spring配置創建應用容器
? ? ? ? context = new ClassPathXmlApplicationContext("xmlconfig/spring-config.xml");
? ? }
? ? @Test
? ? public void testDamselRescuingKnight() {
? ? ? ? // 根據名稱從應用容器里獲取拯救少女騎士對象
? ? ? ? DamselRescuingKnight damselRescuingKnight = (DamselRescuingKnight) context.getBean("damselRescuingKnight");
? ? ? ? // 拯救少女騎士執行任務
? ? ? ? damselRescuingKnight.embarkOnQuest();
? ? }
? ? @After
? ? public void destroy() {
? ? ? ? // 關閉應用容器
? ? ? ? context.close();
? ? }
}
?
執行查看結果
總結
以上是生活随笔為你收集整理的Spring第一讲:初步了解Spring的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 申请新股票要什么条件
- 下一篇: Spring第二讲--利用组件注解符精简