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.com/artifact/org.springframework/spring-context --> < dependency > < groupId >org.springframework</ groupId > < artifactId >spring-context</ artifactId > < version >${springframework.version}</ version > </ dependency > <!-- https://mvnrepository.com/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