Spring~注入

首先来看看一条关于spring的高大上的解释:
Spring是一个轻量级控制反转(IOC)和面向切面(AOP)的容器框架。


问题、什么是IOC?
IOC就是最终要实现的目标,而实现这个目标所需要的手段就是DI(依赖注入)。
问题、spring能做什么?
spring的本质就是创建对象和管理对象的(维护其之间的关系)。


我们常用的spring注入的方式有以下几种:
新建maven项目,配置spring环境,就不在此赘述了,下面是项目的结构图
这里写图片描述

1、通过SET方法注入

如上结构,如果在UserService类中有一个全局变量userDao,如果要在UserService中访问userDao,就必须先通过spring注入值,至此,在UserService中添加对应属性的set方法:如下

public void setUserDao(UserDao userDao){
    this.userDao = userDao;
}

这里重点是方法名称,例如属性名是“userDao”,那么对应的set方法名必须是“setUserDao”(可以使用IDE工具自动生成);
然后在spring的配置文件中配置:

<bean id="userDao" class="com.haha.spring.UserDao">
<bean id="userService" class="com.haha.spring.UserService">
    <-- 
       property:节点用于配置属性
       name:属性的名称
       ref:要引用的bean的id
    -->
    <property name="userDao" ref="userDao"/>
</bean>
2、构造方法注入

为需要注入值的参数配置以其为参数的构造方法;如:

public class UserService{
    private UserDao userDao;
    public UserService(UserDao userDao){
        this.userDao=userDao;
    }
}

然后在spring配置文件中使用<constructor-arg>做相应的配置;如下

<bean id="userDao" class="com.haha.spring.UserDao">
<bean id="userService" class="com.haha.spring.UserService">
    <-- 
       constructor-arg:节点用于配置属性
       index:参数索引的位置
       ref:要引用的bean的id
    -->
    <constructor-arg name="userDao" ref="userDao"/>
</bean>
还有一种注入方式是通过注解进行注入值,后面的文章中会详细解释,并且运用到……

猜你喜欢

转载自blog.csdn.net/qq_41244651/article/details/79478192
今日推荐