一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

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

服務器之家 - 編程語言 - Java教程 - Spring bean 四種注入方式詳解

Spring bean 四種注入方式詳解

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

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

一、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);
   }

二、構造函數方式注入

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 配置 構造函數方式注入
 */
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 是按照構造方式注入
        index 是按照成員變量在構造函數中的參數的第幾個
        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>

總結

本篇文章就到這里了,希望能給你帶來幫助,也希望能夠您能夠關注服務器之家的更多內容!

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

延伸 · 閱讀

精彩推薦
  • Java教程xml與Java對象的轉換詳解

    xml與Java對象的轉換詳解

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

    Java教程網2942020-09-17
  • Java教程Java BufferWriter寫文件寫不進去或缺失數據的解決

    Java BufferWriter寫文件寫不進去或缺失數據的解決

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

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

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

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

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

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

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

    阿杜7472021-02-04
  • Java教程Java實現搶紅包功能

    Java實現搶紅包功能

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

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

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

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

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

    Java使用SAX解析xml的示例

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

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

    小米推送Java代碼

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

    富貴穩中求8032021-07-12
主站蜘蛛池模板: 亚洲国产精品成人综合久久久 | 免费观看伦理片 | 热99精品视频 | 国内精品一区二区三区东京 | 九九精品视频一区二区三区 | 国产亚洲小视频 | 我的男友是消防员在线观看 | 亚洲国产综合自在线另类 | 动漫jk美女被爆羞羞漫画 | 成人综合网址 | 秋霞717理论片在线观看 | 日韩手机在线观看 | 给我免费的视频在线观看 | 二次元美女内裤凹陷太深 | 日本成年片高清在线观看 | 国产精品毛片久久久久久久 | 午夜精品久久久久久中宇 | 欧美日韩在线一区 | 国产色视频一区二区三区 | 国产三区二区 | 男人添女人 | 日韩天堂网 | 国产51| 和两个男人玩3p好爽视频 | 嫩草蜜桃 | 日本在线视频免费观看 | 91久久偷偷做嫩草影院免费 | 欧美最猛性xxxxx动态图 | 国产麻豆精品免费视频 | 免费高清在线视频色yeye | 日韩精品中文字幕视频一区 | 护士xxxx| 视频一区二区三区欧美日韩 | 国产精品成 | 日本高清在线精品一区二区三区 | 精品国产区一区二区三区在线观看 | sese在线观看 | 12-14娇小videos| 久久精品中文字幕 | 精品国产免费一区二区三区 | 四虎在线视频免费观看 |