spring框架-------set注入

set注入:

通俗易懂的讲就是通过set方法实现的一种注入方式

首先新建一个Maven项目

打开idea——》file——》new——》Project,进入如下界面

 

 创建完成如图:

 pom.xml

<?xml version="1.0" encoding="UTF-8"?>

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <groupId>cn.tedu</groupId>
  <artifactId>spring04</artifactId>
  <version>1.0-SNAPSHOT</version>

  <name>spring04</name>
  <!-- FIXME change it to the project's website -->
  <url>http://www.example.com</url>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <maven.compiler.source>1.8</maven.compiler.source>
    <maven.compiler.target>1.8</maven.compiler.target>
  </properties>

  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.11</version>
      <scope>test</scope>
    </dependency>

    <!--spring的依赖项-->
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-context</artifactId>
      <version>5.3.9</version>
    </dependency>
  </dependencies>

  <build>

  </build>
</project>

项目结构:

 dao层

这个包名和类名、方法名可以随意定,为了set注入

public class UserDao {
    public void show(){//测试方法
        System.out.println("我是userDao....");
    }
}

service层

首先定义了一个UserDao

然后提供set方法

定义普通的字符串和整型也可以进行set注入

import cn.tedu.dao.UserDao;

public class UserService {
    private UserDao userDao;

    /*set方法注入
     * 需要给属性字段提供set方法*/
    public void setUserDao(UserDao userDao) {
        this.userDao = userDao;
    }

    //字符串类型
    String name;
    //整型
    Integer age;

    public void setName(String name) {
        this.name = name;
    }

    public void setAge(Integer age) {
        this.age = age;
    }


    public void show(){
        System.out.println("我是userService....");
        userDao.show();
        System.out.println("名字:"+name+",年龄:"+age);
    }

}

spring-config.xml

首先定义一个bean对象UserDao,id是bean对象的唯一标识符userDao,class是bean(需要被实例化的bean对象)的全路径(包名+类名)

然后通过bean再定义一个UserService,将UserDao注入到UserService中

<?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
 https://www.springframework.org/schema/beans/spring-beans.xsd">

    <bean id="userDao" class="cn.tedu.dao.UserDao"/>
    <bean id="userService" class="cn.tedu.service.UserService">
        <!--set方法注入,通过property属性实现set注入
        name:属性字段名
        ref:对应bean标签的id属性值
        value:具体的值-->
        <property name="userDao" ref="userDao"/>
        <property name="name" value="王向东"/>
        <property name="age" value="20"/>
    </bean>
</beans>

测试层:

import cn.tedu.service.UserService;
import org.springframework.beans.factory.BeanFactory;
import org.springframework.context.support.ClassPathXmlApplicationContext;


public class TestDemo {
    public static void main(String[] args) {
       //加载多个配置文件
        BeanFactory factory = new ClassPathXmlApplicationContext("spring-config.xml");
        //2.通过getBean方法调用spring-config.xml配置文件中的id属性为userService的bean
       //使用空构造实例化
        UserService userService = ( UserService) factory.getBean("userService");
        //3.调用方法
        userService.show();


    }
}

运行结果

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值