美文网首页程序员之家
通俗的说一下Spring

通俗的说一下Spring

作者: cb9841112785 | 来源:发表于2018-06-15 16:48 被阅读35次

                   通俗的说一下Spring

            Spring它是一个开源的框架,我们通常认为Spring框架它是一个大管家,没错它就是一个大管家,所以说我们在开发当中Spring框架是不可缺少的,它是JavaEE/SE的一站式框架(轻量级的),那什么是轻量级呢?我们在开发中会把服务器端分为三层架构:web层、业务逻辑层、持久层。

    我们来说一下这三层架构:web层也就是spring为我们提供了springMVC这一框架,(后续我们会详细介绍springMVC的);业务逻辑层也就是我们所说的service层,spring提供了Bean管理、IOC以及事务的管理;持久层:spring为我们提供了JDBC的模板(JdbcTemplate)他可以很好的与ORM框架进行整合,比如说:Hibernate,Mybatis,的持久层的框架;

    我们来解说一下spring的有点:

    ①方便解耦,简化开发

    spring就是一个大工厂,可以将所有的对象创建和依赖关系维护都交给spring进行管理

    ②支持AOP的开发

    spring提供了面向切面编程,可以很方便的对程序进行拦截,运行监控的功能;

    ③声明式事务的支持

    只需要配置就可以完成对事务的管理,而无序手动的编程

    ④方便对程序的测试

    spring对Junit4支持,可以通过注解@Test测试spring的程序

    ⑤方便集成各种优秀的框架

    spring不排斥各种优秀的框架,其中内部提供了对各种优秀框架的支持(Struts2、hibernate,Mybatis)的直接的支持

    OK,以上就是我们所说的spring的优点

    ---------------------------------------------------------------------------------------------------------------------------------通常我们说到spring就会知道:spring的IOC和AOP还有DI

    我们来说一下springIOC的底层的实现原理,IOC就是我们所说的(控制反转)那么什么是控制控制反转呢?简单的理解就是反射机制,在传统的方式开发的演变过程

    起初我们采用的是UserService service = new UserService();面向对象的编程  -->我们会采用new一个对象的方式来对service层进行连接的。

    其次我们采用的是UserService service = new UserServiceImpl();面向借口的编程 -->我们会采用new一个接口的方式来对service层进行连接的。我们在开发中都会采用OCP原则(open-close原则)既是对程序的扩展是open的,对修改程序代码是close的,尽量做到不修改程序的代码,实现对程序的扩展

    然后我们采用了工厂设计模式-->用工程设计模式对spring的IOC进行了实现

    -->//创建spring的工厂

    ApplicationContext applicationContext = new ClassPathXMLApplicationContext(configLocation:"applicationContext.xml");

    //获得工厂的类

    UserService userService = (UserService) applicationContext.getBean("XXX")

    XXX值得是Xml中配置的ID属性

    目前大多数情况下都使用的是:工厂+反射+配置文件的方式进行IOC的实现

    随着技术的发展spring提供了springboot让我们放弃了对配置文件的设置;减少了开发中对配置文件的设置

    ---------------------------------------------------------------------------------------------------------------------------

                spring的Bean管理(Xml)  Xml中的Bean

    ①采用无参构造:

                ②静态工厂实例化:

    ③实例工厂:

    Bean标签中的配置

    id和name ,一般情况下,装配一个bean时,通过指定的id属性作为bean的名称,id属性在IOC容器中必须是唯一的,如果bean的名称有特殊的符号,我们就需要使用name属性了

                    class用于设置一个类的全路径的名称,主要作用是IOC容器生成类的实例。

    相关文章

      网友评论

        本文标题:通俗的说一下Spring

        本文链接:https://www.haomeiwen.com/subject/xfpmeftx.html