spring框架怎么体现降低耦合性的?spring工作原理是怎样的?

Spring是一种多层的J2EE应用程序框架,其核心就是提供一种新的机制管理业务对象及其依赖关系。那spring框架怎么体现降低耦合性的?下面来我们就来给大家讲解一下。

首先定义Duck接口:

public interface Duck
{
    public void performFly();
}

接下来实现这个Duck接口

public class DuckImpl implements Duck
{
    FlyBehavior flyBehavior;
    String name;
    public DuckImpl(String name)
    {
        this.name = name;
    }
    public void performFly()
    {
        flyBehavior.fly(name);
    }
    public void setFlyBehavior(FlyBehavior flyBehavior)
    {
        this.flyBehavior = flyBehavior;
    }
}

然后定义FlyBehavior接口

public interface FlyBehavior
{
    public void fly(String name);
}

然后定义实现FlyBehavior的类

public class FlyWithWings implements FlyBehavior
{
    public void fly(String name)
    {
        System.out.println(name + ": I can fly with wings");
    }
}

最后使用xml文件来注入两个类的依赖关系,使用ref相当于调用了setFlyBehavior,从而动态得设置了Duck的飞行行为,如此一来,降低了Duck和FlyBehavior之间的依赖关系,同时可以很方便的注入新的飞行行为,比如FlyNoWay。。。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING/DTD BEAN/EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<bean id = "flyBehavior" class = "FlyWithWings">
<!-- <bean id = "flyBehavior" class="FlyNoWay"> -->
</bean>
<bean id = "duck" class="DuckImpl">
  <constructor-arg value="Rubber Duck"></constructor-arg>
  <property name = "flyBehavior" ref = "flyBehavior"/>
</bean>
</beans>

spring工作原理是怎样的?

1、SpringMVC请所有的请求都提交给DispatcherServlet,它会委托应用系统的其他模块负责负责对请求进行真正的处理工作。

2、DispatcherServlet查询一个或多个HandlerMapping,找到处理请求的Controller。

3、DispatcherServlet请请求提交到目标Controller。

4、Controller进行业务逻辑处理后,会返回一个ModelAndView。

5、Dispathcher查询一个或多个ViewResolver视图解析器,找到ModelAndView对象指定的视图对象。

6、视图对象负责渲染返回给客户端。

Spring特点:

1、轻量级:轻量级是针对重量级容器(EJB)来说的,Spring的核心包就不到1M大小,而使用Spring的核心包所需的资源也很小,所以可以在小型设备中使用。

2、非入侵式:Spring目标是一个非入侵式的服务框架。原因是所有框架都是提供大量的功能供用户去使用,从而简化开发时间和成本,但由于大量的使用了框架的API,使应用程序和框架发生了大量的依赖性,无法从框架中独立出来,更加无法使程序组件在其他程序中使用。

3、容器:Spring提供了容器功能,容器可以管理对象的生命周期、对象与对象间的关系、我们可以通过编写XML来设置对象关系和初始值,这样容器在启动之后,所有的对象都直接可以使用,不用编写任何编码来产生对象。

其实使用Spring的好处还是很多的,Spring可以降低各种框架的使用难度,是Java程序员日常工作的好帮手,尤其是目前常用的Java组合框架(SSH、SSM)都离不开Spring,并且Spring利用依赖注入特性来降低两个类之间的耦合,从而提高代码的质量。最后大家如果想要了解更多java架构师知识,敬请关注奇Q工具网。

推荐阅读:

qt怎么处理几百兆的json文件?qt如何解析json?

json对象和json字符串互转的方法是什么? Json对象属性如何修改?

java可以写爬虫吗?java写爬虫注意事项