# demo_spring04_di_three
**Repository Path**: JavaObjects/demo_spring04_di_three
## Basic Information
- **Project Name**: demo_spring04_di_three
- **Description**: No description available
- **Primary Language**: Java
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2019-09-27
- **Last Updated**: 2020-12-19
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# Java-Spring依赖属性的构造函数注入
1. 新建一个Java Project

2. Java工程导jar包
+ 创建一个lib文件夹


**如图所示新建完成**

+ 导入jar包


+ 新建或导入配置文件

**beans.xml**
```
```
3. 新建test/MyController test/MyService test/MyDao

**MyController**
```
package test;
public class MyController {
private MyService service;
public MyController(MyService myService)
{
this.service = myService;
}
public void login()
{
System.out.println("MyController login........");
service.serviceLogin();
}
}
```
**MyService**
```
package test;
public class MyService {
private MyDao dao;//MyService依赖MyDao
/**
* 为咯给属性赋值 就在属性所在的
* 类里面设置一个构造方法
* 并且该构造方法接收一个该属性类开的参数
*
Title:
* Description:
* @param myDao
*/
public MyService(MyDao myDao)
{
this.dao = myDao;
}
public void serviceLogin() {
System.out.println("MyService serviceLogin()......");
dao.queryUserByNameAndPwd();
}
}
```
**MyDao**
```
package test;
public class MyDao {
public void queryUserByNameAndPwd()
{
System.out.println("MyDao queryUserByNameAndPwd");
}
}
```
4. 构造函数配置(亮点加重点)
**beans.xml**
```
```
5. 新建测试类测试

**Test.java**
```
package test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class Test {
public static void main(String[] args) {
//实例化spring容器及bean
ApplicationContext act = new ClassPathXmlApplicationContext("beans.xml");
// 得到的是此处的controller
//
//
//
MyController c = (MyController) act.getBean("controller");
c.login();
}
}
```

**如图所示测试成功**

#### 总结
属性注入的两种方式:
1.构造函数注入:
//需要在类中定义构造方法,并且接收参数,便于给属性赋值
```
public MyController(MyService myService)
{
this.service=myService;
}
public MyService(MyDao myDao)
{
this.dao=myDao;
}
```
//接着在配置文件中对bean进行配置,特别注意给构造方法中的参数赋值
```
```
2.属性的setter方法注入
```
//需要提供属性的setter方法
//需要在配置bean的时候使用标签给属性赋值
```
**以上就是我对于 Java-Spring依赖属性的构造函数注入 知识点整理的全部内容** 另附[源码](https://github.com/javaobjects/demo_spring04_di_three)
==================================================================
#### 分割线
==================================================================
**博主为咯学编程:父母不同意学编程,现已断绝关系;恋人不同意学编程,现已分手;亲戚不同意学编程,现已断绝来往;老板不同意学编程,现已失业三十年。。。。。。如果此博文有帮到你欢迎打赏,金额不限。。。**
