SpringMvc的IOC思想

SpringMvc的IOC思想


1、为什么要用IOC思想?

      之前的程序都是在类内部创建依赖对象(不反转的方式),缺点有很多:比如会导致类之间的高耦合,维护和可拓展性大大降低,所以推出IOC思想来优化改进这些缺点。

2、IOC的原理

       IOC(Inversion of Control)只是一种对接口的(控制反转)思想,也是一种实现类依赖注入的手段实际上IOC也是一种工厂模式。就是把提前设计好的对象放到一个容器里,具体怎么放我们也不需要管,只需要配置好就行了,然后这些对象都会放到这个容器里,什么时候用的话回去IOC容器中找。

3、配置步骤

(非maven项目不用看:为了方便测试使用Junit工具,首先带入Junit的依赖,然后还需要spring-test的测试包,注意版本要和项目版本一致,然后在类前加Test注解就可以从这个类中进行测试了)

       加两个注解分别是@RunWith(测试类的完全限定名)和@ContextConfiguration(locations = "配置文件的位置"),第一个注解是允许读配置文件,第二个是告诉读哪里的配置文件。

为了能实现在服务器启动的时候进行读取配置文件,要进行如下配置

lister-class监听一下

然后告诉去读哪里的配置文件

    接下来写配置信息,有两种方式

第一种就是用Bean节点的方式(适合外部导入的jar包中的类)

@Data
@AllArgsConstructor
@NoArgsConstructor
public class User {
    private Integer id;
    private String username;
    private String likes;
}
<bean id="User" class="com.neuedu.pojo.User">
        <property name="id" value="1"></property>
        <property name="username" value="李白"></property>
        <property name="likes" value="打野"></property>
</bean>

 第二种就是加注解的方法(适合于自己写的类)

首先在类上加一个注解(下面五个选一个就可以)

注意:拿取容器中内容的也要加注解

(@Component //搞不清楚放那一层,

@Repository //仓库
@Service /rvice
@Configration //配置类
@Controller  //controller)
配置信息为
 <context:component-scan base-package="包名(这个包下有注解的类都会被扫瞄)"></context:component-scan>

4、如何使用容器中配置好的类

使用@Resource注解

@Resource
private User user;

注意:如果有多个类都实现了一个接口且被放到容器中,需要去掉多余的,不然会报错,也可以在@Resource注解中加name属性指定取出那个实现类。

原文地址:https://www.cnblogs.com/mvpmvp/p/13418530.html