spring入门案例plus
生活随笔
收集整理的這篇文章主要介紹了
spring入门案例plus
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
?
三種注入方式
構(gòu)造器注入:構(gòu)造器注入,顧名思義就是被注入的對象通過在其構(gòu)造方法中聲明依賴對象的參數(shù)列表,讓外部知道它需要哪些依賴對象。
setter 方法注入:?對于 JavaBean 對象而言,我們一般都是通過 getter 和 setter 方法來訪問和設(shè)置對象的屬性。所以,當前對象只需要為其所依賴的對象提供相對應(yīng)的 setter 方法,就可以通過該方法將相應(yīng)的依賴對象設(shè)置到被注入對象中。
接口方式注入?:接口方式注入顯得比較霸道,因為它需要被依賴的對象實現(xiàn)不必要的接口,帶有侵入性。一般都不推薦這種方式。
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>com.henu</groupId><artifactId>spring01_ioc</artifactId><version>1.0-SNAPSHOT</version> ?<dependencies><!-- spring4.3.20 --><!-- spring-context --><!-- https://mvnrepository.com/artifact/org.springframework/spring-context --><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>4.3.20.RELEASE</version></dependency> ?<!-- https://mvnrepository.com/artifact/org.springframework/spring-context --><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>4.3.20.RELEASE</version></dependency> ?<!-- spring-core --><dependency><groupId>org.springframework</groupId><artifactId>spring-core</artifactId><version>4.3.20.RELEASE</version></dependency><!-- spring-beans --><dependency><groupId>org.springframework</groupId><artifactId>spring-beans</artifactId><version>4.3.20.RELEASE</version></dependency><!-- https://mvnrepository.com/artifact/org.springframework/spring-expression --><dependency><groupId>org.springframework</groupId><artifactId>spring-expression</artifactId><version>4.3.20.RELEASE</version></dependency> ?<!-- https://mvnrepository.com/artifact/junit/junit --><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version><scope>test</scope></dependency> ?<!-- https://mvnrepository.com/artifact/org.projectlombok/lombok --><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>1.16.20</version><scope>provided</scope></dependency> ?</dependencies> ? </project>BeautifulGirl
package com.henu.bean; ? import lombok.Data; import java.util.Date; ? /*** @author George* @description**/ ? @Data public class BeautifulGirl {public String like;public Date date;public void grilSay(){System.out.println("BeautifulGirl.grilSay()");} }YongBoy
package com.henu.bean; ? import lombok.Data; ? /*** @author George* @description**/ @Data public class YongBoy { ?public ?BeautifulGirl girl; ?public ?void happy() {System.out.println("哈哈,年輕人有女朋友了......");} ? }Crm
package com.henu.bean; ? import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; ? import java.util.Date; ? /*** @author George* @description**/ @Data //全參 @AllArgsConstructor //無參 @NoArgsConstructor public class Crm {private int age;private String name;private Date birthday; ? } ?User
package com.henu.bean; ? import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; ? import java.util.List; ? /*** @author George* @description**/ @Data //無參 @NoArgsConstructor //有參 @AllArgsConstructor public class User {private int id;private String name;private String pwd;private List<Car> cars; }Car
package com.henu.bean; ? import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; ? /*** @author George* @description**/ @Data @AllArgsConstructor @NoArgsConstructor public class Car {private String logo; }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"> ?<bean id="date" class="java.util.Date"></bean> ?<!-- 與name屬性一模一樣,不過不能使用特殊字符 --><bean id="BeautifulGirl" class="com.henu.bean.BeautifulGirl"><property name="like" value="唱、跳、rap"></property><!--這里要引用date,則需定義bean, 如上方所示--><property name="date" ref="date"></property></bean> ?<bean id="yongBoy" class="com.henu.bean.YongBoy"><!-- 引用類型注入:為 yongBoy下的girl對象,即girl是yongBoy中一個對象 --><property name="girl" ref="BeautifulGirl"></property></bean> ? ?<!--基于構(gòu)造方法索引的注入--><!--<bean id="crm" class="com.henu.bean.Crm"><constructor-arg index="0" value="25"></constructor-arg><constructor-arg index="1" value="George"></constructor-arg><constructor-arg index="2" ref="date"></constructor-arg></bean>--> ?<!-- 基于構(gòu)造方法類型注入 --><!--<bean id="crm" class="com.henu.bean.Crm"><constructor-arg type="int" value="23"></constructor-arg><constructor-arg type="java.lang.String" value="George"></constructor-arg><constructor-arg type="java.util.Date" ref="date"></constructor-arg></bean>--> ?<!--按照參數(shù)名稱注入--><bean id="crm" class="com.henu.bean.Crm"><constructor-arg name="age" value="23"></constructor-arg><constructor-arg name="name" value="George"></constructor-arg><constructor-arg name="birthday" ref="date"></constructor-arg></bean> ?<bean id="car1" class="com.henu.bean.Car"><property name="logo" value="bmw"></property></bean><bean id="car2" class="com.henu.bean.Car"><property name="logo" value="oooo"></property></bean> ?<!--set方法注入 集合屬性注入--><bean name="user" class="com.henu.bean.User"><property name="id" value="10001"></property><property name="name" value="George"></property><property name="pwd" value="123456"></property><property name="cars"><list><ref bean="car1"></ref><ref bean="car2"></ref></list></property></bean> ? </beans>SpringTest
package com.henu.test; ? import com.henu.bean.BeautifulGirl; import com.henu.bean.Crm; import com.henu.bean.User; import com.henu.bean.YongBoy; import org.junit.Test; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; ? /*** @author George* @description**/ public class SpringTest {@Testpublic void test01(){ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");YongBoy yongBoy = context.getBean(YongBoy.class);BeautifulGirl girl = context.getBean(BeautifulGirl.class);Crm crm = context.getBean(Crm.class);User user = context.getBean(User.class);yongBoy.happy();girl.grilSay();System.out.println(crm.getName() + "->" + crm.getAge() + "->" + crm.getBirthday());System.out.println(user);} }結(jié)果展示:
哈哈,年輕人有女朋友了...... BeautifulGirl.grilSay()唱、跳、rap->>>Mon Sep 16 18:53:10 CST 2019 George->23->Mon Sep 16 19:16:17 CST 2019 User(id=10001, name=George, pwd=123456, cars=[Car(logo=bmw), Car(logo=oooo)])?
總結(jié)
以上是生活随笔為你收集整理的spring入门案例plus的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 如何判断一个常量是废弃常量,一个类是无用
- 下一篇: 简单介绍强引用,软引用,弱引用,虚引用