一、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