好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

spring如何实现依赖注入DI(spring-test方式)

spring依赖注入DI

1、创建一个maven项目

?

1

mvn archetype:generate -DarchetypeCatalog=internal

2、修改pom.xml

引入需要的依赖,首先spring-context,还是spring-test,最后还有junit。

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

< properties >

        < project.build.sourceEncoding >UTF-8</ project.build.sourceEncoding >

        < springframework.version >4.3.7.RELEASE</ springframework.version >

    </ properties >

 

    < dependencies >

        < dependency >

            < groupId >junit</ groupId >

            < artifactId >junit</ artifactId >

            < version >4.12</ version >

            < scope >test</ scope >

        </ dependency >

        <!-- https://mvnrepository测试数据/artifact/org.springframework/spring-context -->

        < dependency >

            < groupId >org.springframework</ groupId >

            < artifactId >spring-context</ artifactId >

            < version >${springframework.version}</ version >

        </ dependency >

        <!-- https://mvnrepository测试数据/artifact/org.springframework/spring-test -->

        < dependency >

            < groupId >org.springframework</ groupId >

            < artifactId >spring-test</ artifactId >

            < version >${springframework.version}</ version >

        </ dependency >

 

    </ dependencies >

    < build >

        < plugins >

            < plugin >

                < groupId >org.apache.maven.plugins</ groupId >

                < artifactId >maven-compiler-plugin</ artifactId >

                < configuration >

                    < source >1.8</ source >

                    < target >1.8</ target >

                    < encoding >utf-8</ encoding >

                </ configuration >

            </ plugin >

            < plugin >

                < artifactId >maven-assembly-plugin</ artifactId >

                < version >3.0.0</ version >

                < configuration >

                    < archive >

                        < manifest >

                            < mainClass >com.xueyoucto.xueyou.App</ mainClass >

                        </ manifest >

                    </ archive >

                    < descriptorRefs >

                        < descriptorRef >jar-with-dependencies</ descriptorRef >

                    </ descriptorRefs >

                </ configuration >

                < executions >

                    < execution >

                        < id >make-assembly</ id > <!-- this is used for inheritance merges -->

                        < phase >package</ phase > <!-- bind to the packaging phase -->

                        < goals >

                            < goal >single</ goal >

                        </ goals >

                    </ execution >

                </ executions >

            </ plugin >

        </ plugins >

    </ build >

3、添加类Person和Body

?

1

2

3

4

5

6

7

8

9

10

11

12

package com.xueyou.demo;

import org.springframework.stereotype.Component;

@Component

public class Person {

    public String getName() {

        return name;

    }

    public void setName(String name) {

        this .name = name;

    }

    private String name;

}

?

1

2

3

4

5

6

7

8

9

10

11

12

package org.xueyou.demo;

import org.springframework.stereotype.Component;

@Component

public class Body {

    public int getId() {

        return id;

    }

    public void setId( int id) {

        this .id = id;

    }

    private int id;

}

4、在配置类App中,添加ComponentScan

需要注意的是,这里需要指定扫描的包

?

1

2

3

4

5

6

7

8

9

10

11

12

13

package com.xueyou.demo;

import org.springframework.context.annotation.ComponentScan;

import org.springframework.context.annotation.Configuration;

/**

  * Hello world!

  */

@Configuration

@ComponentScan (basePackages = { "org.xueyou.demo" , "com.xueyou.demo" })

public class App {

    public static void main(String[] args) {

        System.out.println( "Hello World!" );

    }

}

5、新建一个测试类

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

package com.xueyou.demo;

import org.junit.Assert;

import org.junit.Test;

import org.junit.runner.RunWith;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.test.context.ContextConfiguration;

import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;

import org.xueyou.demo.Body;

@RunWith (SpringJUnit4ClassRunner. class )

@ContextConfiguration (classes = App. class )

public class Springtest {

    @Autowired

    private Body body;

    @Autowired

    private Person person;

    @Test

    public void testBodyIsNull(){

        Assert.assertNotNull(body);

    }

    @Test

    public void testPersonIsNull(){

        Assert.assertNotNull(person);

    }

}

6、运行测试类

结果如下:

7、从运行结果中我们能看到

Person类和Student类已经被依赖注入到spring中,spring能够使用这两个类了。 

spring-test依赖无法使用问题

?

1

2

3

4

5

6

< dependency >

            < groupId >org.springframework</ groupId >

            < artifactId >spring-test</ artifactId >

            < version >4.3.7.RELEASE</ version >

            < scope >test</ scope >

</ dependency >

去掉

?

1

< scope >test</ scope >

好了,解决!以上为个人经验,希望能给大家一个参考,也希望大家多多支持。

原文链接:https://archer.blog.csdn.net/article/details/71055262

查看更多关于spring如何实现依赖注入DI(spring-test方式)的详细内容...

  阅读:21次