激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達(dá)式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

香港云服务器
服務(wù)器之家 - 編程語言 - Java教程 - Spring bean 四種注入方式詳解

Spring bean 四種注入方式詳解

2021-10-13 15:11寧在春 Java教程

這篇文章主要介紹了Spring bean的實例化和IOC依賴注入詳解,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

一、Set方式注入

pojo層:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
/**
 * @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 文件

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?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 id="student1" class="com.crush.pojo.Student1">
        <property name="name" value="wyh1"/>
        <property name="school" value="hngy1"/>
    </bean>
</beans>

test測試

?
1
2
3
4
5
6
@Test
   public void student1(){
       ApplicationContext context = new ClassPathXmlApplicationContext("student1.xml");
       Student1 student1 = context.getBean("student1", Student1.class);
       System.out.println(student1);
   }

二、構(gòu)造函數(shù)方式注入

pojo層

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
/**
 * @Author: crush
 * @Date: 2021-06-17 17:02
 * version 1.0
 * xml 配置 構(gòu)造函數(shù)方式注入
 */
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文件

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?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 是按照構(gòu)造方式注入
        index 是按照成員變量在構(gòu)造函數(shù)中的參數(shù)的第幾個
        name 表示成員變量名
        type 表示類型
        value 表示值
        ref 表示引用 可引用另外一個注入到Spring的中的值
    -->
    <bean id="student2" 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測試

?
1
2
3
4
5
6
@Test
 public void student2(){
     ApplicationContext context = new ClassPathXmlApplicationContext("student2.xml");
     Student2 student2 = context.getBean("student2", Student2.class);
     System.out.println(student2);
 }

三、注解注入

pojo層

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
/**
 * @Author: crush
 * @Date: 2021-06-17 17:08
 * version 1.0
 */
@Component
public class Student3 {
    @Value("wyh3")
    private String name;
    @Value("hngy3")
    private String school;
    @Override
    public String toString() {
        return "Student3{" +
                "name='" + name + '\'' +
                ", school='" + school + '\'' +
                '}';
    }
}

3.xml文件

?
1
2
3
4
5
6
7
8
9
10
11
<?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測試

?
1
2
3
4
5
6
@Test
 public void student3(){
     ApplicationContext context = new ClassPathXmlApplicationContext("student3.xml");
     Student3 student3 = context.getBean("student3", Student3.class);
     System.out.println(student3);
 }

四、JavaConfig 方式注入

pojo層

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
/**
 * @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 類

?
1
2
3
4
5
6
7
@Configuration
public class Student4Config {
    @Bean
    public Student4 student4(){
        return new Student4();
    }
}

xml文件 掃描包

?
1
2
3
4
5
6
7
<?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>

測試:

?
1
2
3
4
5
6
@Test
public void student4(){
    ApplicationContext context = new ClassPathXmlApplicationContext("student4.xml");
    Student4 student4 = context.getBean("student4", Student4.class);
    System.out.println(student4);
}

五、Service層注入詳解

service

?
1
2
3
4
5
6
7
8
9
/**
 * @Author: crush
 * @Date: 2021-06-17 17:27
 * version 1.0
 * xml 配置
 */
public interface StudentService1 {
    void test();
}

serviceImpl

?
1
2
3
4
5
6
7
8
9
10
11
12
/**
 * @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配置文件

?
1
2
3
4
5
6
<?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="studentService1" class="com.crush.dao.StudentService1" />
</beans>

總結(jié)

本篇文章就到這里了,希望能給你帶來幫助,也希望能夠您能夠關(guān)注服務(wù)器之家的更多內(nèi)容!

原文鏈接:https://blog.csdn.net/weixin_45821811/article/details/118002025

延伸 · 閱讀

精彩推薦
  • Java教程xml與Java對象的轉(zhuǎn)換詳解

    xml與Java對象的轉(zhuǎn)換詳解

    這篇文章主要介紹了xml與Java對象的轉(zhuǎn)換詳解的相關(guān)資料,需要的朋友可以參考下...

    Java教程網(wǎng)2942020-09-17
  • Java教程Java BufferWriter寫文件寫不進(jìn)去或缺失數(shù)據(jù)的解決

    Java BufferWriter寫文件寫不進(jìn)去或缺失數(shù)據(jù)的解決

    這篇文章主要介紹了Java BufferWriter寫文件寫不進(jìn)去或缺失數(shù)據(jù)的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望...

    spcoder14552021-10-18
  • Java教程20個非常實用的Java程序代碼片段

    20個非常實用的Java程序代碼片段

    這篇文章主要為大家分享了20個非常實用的Java程序片段,對java開發(fā)項目有所幫助,感興趣的小伙伴們可以參考一下 ...

    lijiao5352020-04-06
  • Java教程Java8中Stream使用的一個注意事項

    Java8中Stream使用的一個注意事項

    最近在工作中發(fā)現(xiàn)了對于集合操作轉(zhuǎn)換的神器,java8新特性 stream,但在使用中遇到了一個非常重要的注意點,所以這篇文章主要給大家介紹了關(guān)于Java8中S...

    阿杜7472021-02-04
  • Java教程Java實現(xiàn)搶紅包功能

    Java實現(xiàn)搶紅包功能

    這篇文章主要為大家詳細(xì)介紹了Java實現(xiàn)搶紅包功能,采用多線程模擬多人同時搶紅包,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙...

    littleschemer13532021-05-16
  • Java教程升級IDEA后Lombok不能使用的解決方法

    升級IDEA后Lombok不能使用的解決方法

    最近看到提示IDEA提示升級,尋思已經(jīng)有好久沒有升過級了。升級完畢重啟之后,突然發(fā)現(xiàn)好多錯誤,本文就來介紹一下如何解決,感興趣的可以了解一下...

    程序猿DD9332021-10-08
  • Java教程Java使用SAX解析xml的示例

    Java使用SAX解析xml的示例

    這篇文章主要介紹了Java使用SAX解析xml的示例,幫助大家更好的理解和學(xué)習(xí)使用Java,感興趣的朋友可以了解下...

    大行者10067412021-08-30
  • Java教程小米推送Java代碼

    小米推送Java代碼

    今天小編就為大家分享一篇關(guān)于小米推送Java代碼,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧...

    富貴穩(wěn)中求8032021-07-12
623
主站蜘蛛池模板: 在线a毛片免费视频观看 | 一级黄色免费观看 | 一级免费看片 | 成人午夜在线免费观看 | 午夜视频在线免费播放 | 一级黄色在线观看 | 一区二区三区四区在线 | 国产毛片aaa一区二区三区视频 | 精品亚洲一区二区三区 | 91一区二区三区久久久久国产乱 | 免费国产视频在线观看 | 国产一区在线观看视频 | 色柚视频网站ww色 | 国产免费观看一区二区三区 | 久草在线最新免费 | 久精品国产 | 亚洲第一页中文字幕 | 96视频在线免费观看 | 看免费的毛片 | 精品一区二区电影 | 亚洲午夜不卡 | 国产精品久久久久久久久久三级 | av电影观看 | 99久久精品免费看国产四区 | 亚洲成人第一页 | 成人羞羞国产免费游戏 | 久久精品视频在线 | 精品成人免费 | 中国av中文字幕 | 国内精品一级毛片免费看 | 黄色大片在线免费观看 | 国内精品视频饥渴少妇在线播放 | 一级α片| 视频一区二区三区在线观看 | 成人羞羞在线观看网站 | 成人aaaa免费全部观看 | 精品国产一区二区三区免费 | 黄色免费视频观看 | 12av毛片 | 欧美一及 | 成人毛片100部免费观看 |