當前位置:
首頁 >
前端技术
> javascript
>内容正文
javascript
Spring 依赖注入(DI)
生活随笔
收集整理的這篇文章主要介紹了
Spring 依赖注入(DI)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
依賴注入,可注入的類型有:
字符串/整數/小樹/布爾值
數組
List集合
Map集合
Propert對象
JvaBean
List+JavaBean
首先創建實體類 package star.july.c_di; import java.util.Arrays; import java.util.List; import java.util.Map; import java.util.Properties; public class Student {private String name;private int age;public Student() {System.out.println("執行了Student構造方法");}public Student(String name, int age) {System.out.println("調用有參構造方法");this.name = name;this.age = age;}// 注入字符串類型private String stuname;public void setStuname(String stuname) {this.stuname = stuname;}// 整型類型private int length;public void setLength(int length) {this.length = length;}// 數組private String[] array;public void setArray(String[] array) {System.out.println("數組注入");this.array = array;}// 集合private List list;public void setList(List list) {this.list = list;}// Map集合private Map<String, String> map;public void setMap(Map<String, String> map) {System.out.println("Map注入");this.map = map;}// Properties注入private Properties prop;public void setProp(Properties prop) {this.prop = prop;}//List+JavaBeanprivate List<Course> ljb;public void setLjb(List<Course> ljb) {this.ljb = ljb;}@Overridepublic String toString() {return "Student [name=" + name + ", age=" + age + ", stuname="+ stuname + ", length=" + length + ", array="+ Arrays.toString(array) + ", list=" + list + ", map=" + map+ ", prop=" + prop + ", ljb=" + ljb + "]";} }JavaBean:package star.july.c_di; public class Course {private String name;public String getName() {return name;}public void setName(String name) {this.name = name;}@Overridepublic String toString() {return "Course [name=" + name + "]";}}
然后配置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/beanshttp://www.springframework.org/schema/beans/spring-beans.xsd"><!-- 依賴注入 使用構造方法注入(不推薦) --><bean id="student" class="star.july.c_di.Student"><constructor-arg index="0" value="狗娃" type="String"></constructor-arg><constructor-arg index="1" value="22" type="int"></constructor-arg></bean><!-- 使用setter方法注入(推薦) --><!-- 字符串類型注入 --><bean id="s1" class="star.july.c_di.Student"><property name="stuname" value="徐鳳年"></property></bean><!-- 整型注入 --><bean id="s2" class="star.july.c_di.Student"><property name="length"><value>22</value></property></bean><!-- 數組 --><bean id="s3" class="star.july.c_di.Student"><property name="array"><array><value>19</value><value>20</value></array></property></bean><!-- 集合:List --><bean id="s4" class="star.july.c_di.Student"><property name="list"><list><value>小一</value><value>小二</value><value>小三</value></list></property></bean><!-- Map集合 --><bean id="s5" class="star.july.c_di.Student"><property name="map"><map><entry key="gd"><value>廣東</value></entry><entry key="gx"><value>廣西</value></entry></map></property></bean><!-- Properties注入 --><bean id="s6" class="star.july.c_di.Student"><property name="prop"><props><prop key="hn">湖南</prop><prop key="fh">鳳凰</prop></props></property></bean><!-- List+JavaBean --><bean id="s7" class="star.july.c_di.Student"><property name="ljb"><list><ref bean="ljb1"></ref><ref bean="ljb2"></ref></list></property></bean><bean id="ljb1" class="star.july.c_di.Course"><property name="name"><value>Java開發</value></property></bean><bean id="ljb2" class="star.july.c_di.Course"><property name="name"><value>UI設計</value></property></bean> </beans>
最后測試:
package star.july.c_di; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; public class Demo {public static void main(String[] args) {ApplicationContext ac = new ClassPathXmlApplicationContext("/star/july/c_di/applicationContext.xml"); // Object s1 = ac.getBean("s1"); // Object s2 = ac.getBean("s2"); // Object s3 = ac.getBean("s3"); // Object s4 = ac.getBean("s4"); // Object s5 = ac.getBean("s5"); // Object s6 = ac.getBean("s6");Object s7 = ac.getBean("s7");System.out.println(s7);} }
首先創建實體類 package star.july.c_di; import java.util.Arrays; import java.util.List; import java.util.Map; import java.util.Properties; public class Student {private String name;private int age;public Student() {System.out.println("執行了Student構造方法");}public Student(String name, int age) {System.out.println("調用有參構造方法");this.name = name;this.age = age;}// 注入字符串類型private String stuname;public void setStuname(String stuname) {this.stuname = stuname;}// 整型類型private int length;public void setLength(int length) {this.length = length;}// 數組private String[] array;public void setArray(String[] array) {System.out.println("數組注入");this.array = array;}// 集合private List list;public void setList(List list) {this.list = list;}// Map集合private Map<String, String> map;public void setMap(Map<String, String> map) {System.out.println("Map注入");this.map = map;}// Properties注入private Properties prop;public void setProp(Properties prop) {this.prop = prop;}//List+JavaBeanprivate List<Course> ljb;public void setLjb(List<Course> ljb) {this.ljb = ljb;}@Overridepublic String toString() {return "Student [name=" + name + ", age=" + age + ", stuname="+ stuname + ", length=" + length + ", array="+ Arrays.toString(array) + ", list=" + list + ", map=" + map+ ", prop=" + prop + ", ljb=" + ljb + "]";} }JavaBean:package star.july.c_di; public class Course {private String name;public String getName() {return name;}public void setName(String name) {this.name = name;}@Overridepublic String toString() {return "Course [name=" + name + "]";}}
然后配置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/beanshttp://www.springframework.org/schema/beans/spring-beans.xsd"><!-- 依賴注入 使用構造方法注入(不推薦) --><bean id="student" class="star.july.c_di.Student"><constructor-arg index="0" value="狗娃" type="String"></constructor-arg><constructor-arg index="1" value="22" type="int"></constructor-arg></bean><!-- 使用setter方法注入(推薦) --><!-- 字符串類型注入 --><bean id="s1" class="star.july.c_di.Student"><property name="stuname" value="徐鳳年"></property></bean><!-- 整型注入 --><bean id="s2" class="star.july.c_di.Student"><property name="length"><value>22</value></property></bean><!-- 數組 --><bean id="s3" class="star.july.c_di.Student"><property name="array"><array><value>19</value><value>20</value></array></property></bean><!-- 集合:List --><bean id="s4" class="star.july.c_di.Student"><property name="list"><list><value>小一</value><value>小二</value><value>小三</value></list></property></bean><!-- Map集合 --><bean id="s5" class="star.july.c_di.Student"><property name="map"><map><entry key="gd"><value>廣東</value></entry><entry key="gx"><value>廣西</value></entry></map></property></bean><!-- Properties注入 --><bean id="s6" class="star.july.c_di.Student"><property name="prop"><props><prop key="hn">湖南</prop><prop key="fh">鳳凰</prop></props></property></bean><!-- List+JavaBean --><bean id="s7" class="star.july.c_di.Student"><property name="ljb"><list><ref bean="ljb1"></ref><ref bean="ljb2"></ref></list></property></bean><bean id="ljb1" class="star.july.c_di.Course"><property name="name"><value>Java開發</value></property></bean><bean id="ljb2" class="star.july.c_di.Course"><property name="name"><value>UI設計</value></property></bean> </beans>
最后測試:
package star.july.c_di; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; public class Demo {public static void main(String[] args) {ApplicationContext ac = new ClassPathXmlApplicationContext("/star/july/c_di/applicationContext.xml"); // Object s1 = ac.getBean("s1"); // Object s2 = ac.getBean("s2"); // Object s3 = ac.getBean("s3"); // Object s4 = ac.getBean("s4"); // Object s5 = ac.getBean("s5"); // Object s6 = ac.getBean("s6");Object s7 = ac.getBean("s7");System.out.println(s7);} }
總結
以上是生活随笔為你收集整理的Spring 依赖注入(DI)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Spring 创建对象的问题,不同构造方
- 下一篇: Spring IOC注解方式