Spring bean 四種注入方式詳解
/** * @Author: crush * @Date: 2021-06-17 16:57 * version 1.0 * xml 配置注入版本 set 方式 */public class Student1 { public String name; public String school; public void setName(String name) {this.name = name; } public void setSchool(String school) {this.school = school; } @Override public String toString() {return 'Student1{' +'name=’' + name + ’’’ +', school=’' + school + ’’’ +’}’; }}1.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'> <!--set方式注入id是注入bean中的名字class 是全限定類名property 是按照set方式注入 --> <bean class='com.crush.pojo.Student1'><property name='name' value='wyh1'/><property name='school' value='hngy1'/> </bean></beans>test測試
@Test public void student1(){ApplicationContext context = new ClassPathXmlApplicationContext('student1.xml');Student1 student1 = context.getBean('student1', Student1.class);System.out.println(student1); }二、構造函數方式注入pojo層
/** * @Author: crush * @Date: 2021-06-17 17:02 * version 1.0 * xml 配置 構造函數方式注入 */public class Student2 { private String name; private String school; public Student2(String name, String school) {this.name = name;this.school = school; } @Override public String toString() {return 'Student2{' +'name=’' + name + ’’’ +', school=’' + school + ’’’ +’}’; }}2.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'> <!--set方式注入id是注入bean中的名字class 是全限定類名constructor 是按照構造方式注入index 是按照成員變量在構造函數中的參數的第幾個name 表示成員變量名type 表示類型value 表示值ref 表示引用 可引用另外一個注入到Spring的中的值 --> <bean class='com.crush.pojo.Student2'><constructor-arg index='0' name='name' type='java.lang.String' value='wyh2'/><constructor-arg name='school' value='hngy2'/> </bean></beans>test測試
@Test public void student2(){ApplicationContext context = new ClassPathXmlApplicationContext('student2.xml');Student2 student2 = context.getBean('student2', Student2.class);System.out.println(student2); }三、注解注入pojo層
/** * @Author: crush * @Date: 2021-06-17 17:08 * version 1.0 */@Componentpublic class Student3 { @Value('wyh3') private String name; @Value('hngy3') private String school; @Override public String toString() {return 'Student3{' +'name=’' + name + ’’’ +', school=’' + school + ’’’ +’}’; }}3.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 https://www.springframework.org/schema/context/spring-context.xsd'> <!--注解方式注入需要掃描注解在的包 注解才會生效 --> <context:component-scan base-package='com.crush.pojo'/></beans>test測試
@Test public void student3(){ApplicationContext context = new ClassPathXmlApplicationContext('student3.xml');Student3 student3 = context.getBean('student3', Student3.class);System.out.println(student3); }四、JavaConfig 方式注入pojo層
/** * @Author: crush * @Date: 2021-06-17 17:16 * version 1.0 * JavaConfig 配置 */public class Student4 { @Value('wyh4') private String name; @Value('hngy4') private String school; @Override public String toString() {return 'Student4{' +'name=’' + name + ’’’ +', school=’' + school + ’’’ +’}’; }}JavaConfig 類
@Configurationpublic class Student4Config { @Bean public Student4 student4(){return new Student4(); }}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 https://www.springframework.org/schema/context/spring-context.xsd'> <context:component-scan base-package='com.crush.config'/></beans>測試:
@Test public void student4(){ApplicationContext context = new ClassPathXmlApplicationContext('student4.xml');Student4 student4 = context.getBean('student4', Student4.class);System.out.println(student4); }五、Service層注入詳解service
/** * @Author: crush * @Date: 2021-06-17 17:27 * version 1.0 * xml 配置 */public interface StudentService1 { void test();}serviceImpl
/** * @Author: crush * @Date: 2021-06-17 17:29 * version 1.0 * xml 配置 */public class StudentService1Impl implements StudentService1{ @Override public void test() {System.out.println('===StudentDao1Impl==='); }}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 /></beans>總結
本篇文章就到這里了,希望能給你帶來幫助,也希望能夠您能夠關注好吧啦網的更多內容!
相關文章:
