最近开始学习一些比较高大上的概念,首先接触到的就是依赖注入。
目前的理解还很肤浅,只是单纯地感觉依赖注入就是取消了A类对B类的显式调用,把这个控制权交给了框架来处理。从这一点来说,和反射差不多。
具体的注入方式大概构造注入和set注入。简单的set注入例子如下
<?xml version="1.0" encoding="UTF-8"?> <beans xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.springframework.org/schema/beans"> <bean id="user" class="com.zcl.spring.setterinjection.User"> <property name="name" value="Zhao" /> </bean> </beans>
public class User { private String name ; public void setName(String name) { this.name = name; } }
构造注入就是在构造函数中进行注入
public class User { private String name ; public User(String name,int age,String country) { this.name = name; }
总结
使用依赖注入可以让类与类之间解耦,将new对象和维护对象这种比较消耗资源的事情交给框架来做,使程序员可以专注于业务逻辑,降低了代码的实现难度。