当前位置: 移动技术网 > IT编程>开发语言>Java > Spring学不会系列-Spring入门篇

Spring学不会系列-Spring入门篇

2020年07月17日  | 移动技术网IT编程  | 我要评论

Spring入门篇

Spring概述

什么是Spring?

  • Spring是一个IOC和AOP的开源框架
  • Spring为简化企业级应用开发而生,使用Spring可以使简单的JavaBean实现以前只有EJB才能实现的功能
  • Spring是JavaSE/EE的一站式(FULL Stack)框架
    • Web层:Spring MVC支持
    • Service层:IOC Bean管理、事务管理支持
    • Dao层:JDBC模板、ORM框架整合(Hibernate、Mybatis等等)支持
  • 方便解耦,简化开发
    • Spring就是一个大工厂,可以将所有对象创建和依赖关系维护,交给Spring管理
  • AOP编程的支持
    • Spring提供面向切面编程,可以方便的实现对程序进行日记记录、权限拦截、运行监控等功能。
  • 声明式事务的支持
    • 只需要通过配置就可以完成对事务的管理,而无需手动编程

Spring的优点

  • 方便程序的测试
    • Spring对Junit4支持,可以通过注解方便的测试Spring程序
  • 方便集成各种优秀框架
    • Spring不排斥各种优秀的开源框架,其内部提供了对各种优秀框架(如:Struts、Hibernate、Mybatis等)的直接支持
  • 降低JavaEE API的使用难度
    • Spring对JavaEE开发中非常难用的一些API(JDBC、JavaMail、远程调用等),都提供了封装,使这些API应用难度大大降低

Spring的模块

  • Core Container(Spring 4)
    • Beans
    • Core
    • Context
    • SpEL
  • Core Container(Spring 5)
    • Beans
    • Core
    • Context
    • Expression(Spring Expression Language, SpEL)
  • AOP
  • Aspects
  • Instrumentation
  • Messaging
  • Data Access/Integration
    • JDBC
    • ORM
    • OXM
    • JMS
    • Transactions
  • Web(Spring 4)
    • WebSocket
    • Servlet
    • Web
    • Portlet
  • Web(Spring 5)
    • WebSocket
    • WebMVC
    • Web
    • WebFlux
  • Test

Spring IOC

  • IOC(Inverse of Control)反转控制的概念,就是将原本在程序中手动创建对象的控制权,交由给Spring框架管理,由Spring框架管理其对象控制权,包括创建和销毁等一系列的生命周期。

  • DI(Dependency Injection)依赖注入,就是IOC的一种表现方式。利用Xml解析+Java反射机制技术,读取配置文件给对象赋值。

Spring IOC/DI案例演进

获取UserService类对象

  • 传统方式(面向接口编程):

    //1.通过new的方式构造对象
    UserService userService = new UserServiceImpl();
    
  • 工厂模式:

    //创建一个工厂
    class FactoryBean{
    	/*
    	* 工厂提供获取UserService的方法
    	*/
    	public static UserService getUserService(){
    		//通过new的方式构造对象
    		return new UserServiceImpl();
    	}
    }
    
    //通过获取UserService
    UserService userService = FactoryBean.getUserService();
    
  • open-close原则下改造:

    • open-close原则:对程序扩展是open,对修改程序代码是close的。简单来说,就是尽量做到不修改程序的源码,实现对程序的扩展。
    bean.xml配置文件
    <bean id="userService" class="com.demo.service.UserServiceImpl">
    	<!--设置属性-->
    	<property name="name" value="同桌小明">
    </bean>
    
    //创建一个工厂
    class FactoryBean{
    	/*
    	* 工厂提供根据id获取对象的方法
    	*/
    	public static Object getBean(String id){
    		...
    		1.解析xml,获取id和class的关系
    		2.反射生成对象
    	}
    }
    
    //通过获取UserService
    UserService userService = FactoryBean.getBean("userService");
    
  • 感受Spring的工厂模式:

    bean.xml配置文件
    <!-- 配置一个 bean -->
    <bean id="userService" class="com.demo.service.UserServiceImpl"/>
    
    //1.创建Spring的IOC容器,交给Spring的工厂管理
    ApplicationContext applicationContext = new ClassPathXmlApplicationContext("bean.xml");
    
    //2.从容器中获取Bean,通过工厂获得类(三级缓存)
    UserService userService = (UserService) applicationContext.getBean(“userService”);
    

本文地址:https://blog.csdn.net/weixin_35799945/article/details/107330013

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网