博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Spring - DI
阅读量:4321 次
发布时间:2019-06-06

本文共 3949 字,大约阅读时间需要 13 分钟。

1.介绍DI

DI就是依赖注入,有一个那么高大上的词,其实就是为一个类添加一些属性,但是这个属性的实例就靠spring在来注入

 

2.对象注入

这里有5个java文件一个xml文件,基本思路,客户端调用服务实现接口的addUser方法,添加一个用户,添加用户需要把数据保存在数据库,所以服务实现类里面new一个UserDao,然后调用UserDao去执行createUser的操作

  • UserDao - 用户持久化接口
  • UserDaoImpl - 用户持久化实现类
  • UserService - 服务接口
  • UserServiceImpl - 服务实现类
  • UserServiceTest - 测试文件
  • springConfig.xml - spring配置文件

UserDao

public interface UserDao {    void createUser();}

 

UserDaoImpl

public void createUser() {        System.out.println("创建一个新的用户");            }

 

UserService

public interface UserService {    /**     * 添加用户     */    void addUser();}

 

UserServiceImpl

public class UserServiceImpl implements UserService{    private UserDao userDao;        /**     * 实现接口方法     */    public void addUser() {        userDao.createUser();    }        public void setUserDao(UserDao userDao) {        this.userDao = userDao;    }    public UserDao getUserDao() {        return userDao;    }}

 

UserServiceTest

public class UserServiceTest {    @Test    public void test() {        //以前//        UserService userService = new UserServiceImpl();//        userService.addUser();                /**         * spring的写法,这是一个工厂类,这里有一个参数,参数对应配置文件的classpath位置,src为根目录         */        ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("/com/test/spring/di/springConfig.xml");                //这里的参数为 配置文件中 bean id,意思就是获取 对应id实例对象        UserService us_1 = (UserService)context.getBean("userServiceBean");        us_1.addUser();            }

 

springConfig.xml

 

3. 基本类型注入

上面看了给予对象赋值,这里看看字符串赋值,两个类,1个配置

  • Person - 对象
  • TestSetter - 测试类
  • springConfig.xml - 配置

person

public class Person {    private String name;    private String age;        public String getName() {        return name;    }    public void setName(String name) {        this.name = name;    }        public String getAge() {        return age;    }    public void setAge(String age) {        this.age = age;    }        @Override    public String toString() {        // TODO Auto-generated method stub        return "名字 = " + getName() + " ,年龄 = " + getAge();    }    }

 

配置

13

 

TestSetter

public class TestSetter {    @Test    public void test() {        ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("/com/test/spring/setter/springConfig.xml");        Person person = context.getBean("person",Person.class);        System.out.println(person.toString());    }}

 

4.集合注入

集合注入就是在property下添加子标签,不同类型有自己特有的子标签名称

  • 数组 - array
t1
t2

 

  • List - list
t1
t2

 

  • Set - set

 

t1
t2

 

 

  • Map - map
k2
值2

 

  • Properties - props
值1
值2

 

转载于:https://www.cnblogs.com/oscar1987121/p/10875137.html

你可能感兴趣的文章
C#:使用UPnP来穿透NAT使内网接口对外网可见
查看>>
js+css 实现遮罩居中弹出层(随浏览器窗口滚动条滚动)
查看>>
项目管理的小故事
查看>>
Visual Studio不显示智能提示代码,快捷键Alt+→也不出现
查看>>
多文件调用(函数、结构体)
查看>>
C# 获取本地电脑所有的盘符
查看>>
D3.js学习(三)
查看>>
汇编语言实验9
查看>>
window资源管理器下无法打开ftp站点
查看>>
spring特点与好处
查看>>
html 自制属性
查看>>
面向对象术语概念
查看>>
细胞(cell) 矩阵快速幂
查看>>
HDU - 1272 小希的迷宫
查看>>
EntityFramework(1)基础概念与Database First
查看>>
Spring Boot 任务
查看>>
2018APIO 进京赶考
查看>>
Duilib程序添加托盘图标显示
查看>>
在windows上搭建redis集群(redis-cluster)
查看>>
【省选十连测之九】【DP】【组合计数去重】【欧拉函数】基本题
查看>>