Spring5.X在xml中常见的注入方式

    科技2022-07-11  93

                                List和Map注入

    package net.cybclass.sp.domain; import java.util.List; import java.util.Map; /** * @author: wangxiaobo * @create: 2020-10-03 15:08 **/ public class Video { // public Video(int id, String title) { // System.out.println("Video 构造函数被调用"); // this.id = id; // this.title = title; // } private int id; private String title; private List<String> chapterList; private Map<Integer, String> videoMap; public List<String> getChapterList() { return chapterList; } public void setChapterList(List<String> chapterList) { this.chapterList = chapterList; } public Map<Integer, String> getVideoMap() { return videoMap; } public void setVideoMap(Map<Integer, String> videoMap) { this.videoMap = videoMap; } public int getId() { return id; } public void setId(int id) { this.id = id; } public String getTitle() { return title; } public void setTitle(String title) { // System.out.println("Video setTitle被调用"); this.title = title; } }

    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" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"> <bean id="video" class="net.cybclass.sp.domain.Video"> <!--<property name="id" value="9"></property>--> <!--<property name="title" value="Spring5.X课程"></property>--> <!--<constructor-arg name="id" value="8"></constructor-arg>--> <!--<constructor-arg name="title" value="Spring5.X课程"></constructor-arg>--> <!--list 类型注入--> <property name="chapterList"> <list> <value>第一章SpringBoot</value> <value>第二章Mybatis</value> <value>第三章Spring</value> </list> </property> <!--注入map--> <property name="videoMap"> <map> <entry key="1" value="SpringCloud课程层"></entry> <entry key="2" value="面试宝典"></entry> <entry key="3" value="JavaWeb课程"></entry> </map> </property> </bean> <!--<bean id="UserService" class="net.cybclass.sp.service.UserServiceImpl"></bean>--> <context:component-scan base-package="net.cybclass.sp.service"></context:component-scan> </beans>

    app.java

    package net.cybclass.sp; import net.cybclass.sp.domain.Video; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; /** * @author: wangxiaobo * @create: 2020-10-03 15:11 **/ public class app { public static void main(String[] args) { ApplicationContext applicationContext=new ClassPathXmlApplicationContext("applicationContext.xml"); Video video=(Video) applicationContext.getBean("video"); // System.out.println(video.getTitle()); System.out.println(video.getChapterList()); System.out.println(video.getVideoMap()); } }

    运行:

                     使用带参的构造函数注入

    Video.java

    package net.cybclass.sp.domain; import java.util.List; import java.util.Map; /** * @author: wangxiaobo * @create: 2020-10-03 15:08 **/ public class Video { public Video(int id, String title) { System.out.println("Video 构造函数被调用"); this.id = id; this.title = title; } private int id; private String title; // private List<String> chapterList; // private Map<Integer, String> videoMap; // public List<String> getChapterList() { // return chapterList; // } // // public void setChapterList(List<String> chapterList) { // this.chapterList = chapterList; // } // // public Map<Integer, String> getVideoMap() { // return videoMap; // } // // public void setVideoMap(Map<Integer, String> videoMap) { // this.videoMap = videoMap; // } public int getId() { return id; } public void setId(int id) { this.id = id; } public String getTitle() { return title; } public void setTitle(String title) { // System.out.println("Video setTitle被调用"); this.title = title; } }

    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" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"> <bean id="video" class="net.cybclass.sp.domain.Video"> <!--<property name="id" value="9"></property>--> <!--<property name="title" value="Spring5.X课程"></property>--> <constructor-arg name="id" value="8"></constructor-arg> <constructor-arg name="title" value="Spring5.X课程"></constructor-arg> <!--list 类型注入--> <!--<property name="chapterList">--> <!--<list>--> <!--<value>第一章SpringBoot</value>--> <!--<value>第二章Mybatis</value>--> <!--<value>第三章Spring</value>--> <!--</list>--> <!--</property>--> <!--<!–注入map–>--> <!--<property name="videoMap">--> <!--<map>--> <!--<entry key="1" value="SpringCloud课程层"></entry>--> <!--<entry key="2" value="面试宝典"></entry>--> <!--<entry key="3" value="JavaWeb课程"></entry>--> <!--</map>--> <!--</property>--> </bean> <!--<bean id="UserService" class="net.cybclass.sp.service.UserServiceImpl"></bean>--> <context:component-scan base-package="net.cybclass.sp.service"></context:component-scan> </beans>

    app.java

    package net.cybclass.sp; import net.cybclass.sp.domain.Video; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; /** * @author: wangxiaobo * @create: 2020-10-03 15:11 **/ public class app { public static void main(String[] args) { ApplicationContext applicationContext=new ClassPathXmlApplicationContext("applicationContext.xml"); Video video=(Video) applicationContext.getBean("video"); System.out.println(video.getTitle()); // System.out.println(video.getChapterList()); // System.out.println(video.getVideoMap()); } }

    运行:

                               使用set方法注入

    Video.java

    package net.cybclass.sp.domain; import java.util.List; import java.util.Map; /** * @author: wangxiaobo * @create: 2020-10-03 15:08 **/ public class Video { // public Video(int id, String title) { // System.out.println("Video 构造函数被调用"); // this.id = id; // this.title = title; // } private int id; private String title; // private List<String> chapterList; // private Map<Integer, String> videoMap; // public List<String> getChapterList() { // return chapterList; // } // // public void setChapterList(List<String> chapterList) { // this.chapterList = chapterList; // } // // public Map<Integer, String> getVideoMap() { // return videoMap; // } // // public void setVideoMap(Map<Integer, String> videoMap) { // this.videoMap = videoMap; // } public int getId() { return id; } public void setId(int id) { this.id = id; } public String getTitle() { return title; } public void setTitle(String title) { System.out.println("Video setTitle被调用"); this.title = title; } }

    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" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"> <bean id="video" class="net.cybclass.sp.domain.Video"> <property name="id" value="9"></property> <property name="title" value="Spring5.X课程"></property> <!--<constructor-arg name="id" value="8"></constructor-arg>--> <!--<constructor-arg name="title" value="Spring5.X课程"></constructor-arg>--> <!--list 类型注入--> <!--<property name="chapterList">--> <!--<list>--> <!--<value>第一章SpringBoot</value>--> <!--<value>第二章Mybatis</value>--> <!--<value>第三章Spring</value>--> <!--</list>--> <!--</property>--> <!--<!–注入map–>--> <!--<property name="videoMap">--> <!--<map>--> <!--<entry key="1" value="SpringCloud课程层"></entry>--> <!--<entry key="2" value="面试宝典"></entry>--> <!--<entry key="3" value="JavaWeb课程"></entry>--> <!--</map>--> <!--</property>--> </bean> <!--<bean id="UserService" class="net.cybclass.sp.service.UserServiceImpl"></bean>--> <context:component-scan base-package="net.cybclass.sp.service"></context:component-scan> </beans>

    app.java

    package net.cybclass.sp; import net.cybclass.sp.domain.Video; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; /** * @author: wangxiaobo * @create: 2020-10-03 15:11 **/ public class app { public static void main(String[] args) { ApplicationContext applicationContext=new ClassPathXmlApplicationContext("applicationContext.xml"); Video video=(Video) applicationContext.getBean("video"); System.out.println(video.getTitle()); // System.out.println(video.getChapterList()); // System.out.println(video.getVideoMap()); } }

    运行:

    Processed: 0.038, SQL: 8