• 【转】Spring学习---Spring 学习总结


    什么是Spring ?

    Spring是一个开源框架,Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson在其著作Expert One-On-One J2EEDevelopment and Design中阐述的部分理念和原型衍生而来。它是为了解决企业应用开发的复杂性而创建的。框架的主要优势之一就是其分层架构,分层架构允许使用者选择使用哪一个组件,同时为J2EE 应用程序开发提供集成的框架。Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。Spring的核心是控制反转(IoC)和面向切面(AOP)。简单来说,Spring是一个分层的JavaSE/EEfull-stack(一站式) 轻量级开源框架。

    EE开发分成三层结构:

    * WEB层:Spring MVC.

    * 业务层:Bean管理:(IOC)

    * 持久层:Spring的JDBC模板.ORM模板用于整合其他的持久层框架.

    为什么学习Spring?

    方便解耦,简化开发

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

    AOP编程的支持

    Spring提供面向切面编程,可以方便的实现对程序进行权限拦截、运行监控等功能

    声明式事务的支持

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

    方便程序的测试

    Spring对Junit4支持,可以通过注解方便的测试Spring程序

    方便集成各种优秀框架

    Spring不排斥各种优秀的开源框架,其内部提供了对各种优秀框架(如:Struts、Hibernate、MyBatis、Quartz等)的直接支持

    降低JavaEE API的使用难度

    Spring 对JavaEE开发中非常难用的一些API(JDBC、JavaMail、远程调用等),都提供了封装,使这些API应用难度大大降低。

    Spring的版本:

    Spring 3.X 4.X 5X 介绍:https://blog.csdn.net/bntX2jSQfEHy7/article/details/78918119

    下载路径:http://repo.springsource.org/libs-release-local/org/springframework/spring/

    解压后Spring目录结构:

    * docs:API和开发规范.

    * libs:jar包和源码.

    * schema :约束

    IOC的底层实现原理

    spring 学习总结

    IOC:Inversion ofControl 控制反转. 指的是 对象的创建权反转(交给)给Spring.作用是实现了程序的解耦合.

    开发步凑:

    1)下载Spring的开发包.

    2)创建web项目,引入Spring的开发包

    spring 学习总结

    3)引入相关配置文件:

    4)编写相关的类:

    spring 学习总结

    5)完成配置:

    spring 学习总结

    6)编写测试程序:

    spring 学习总结

    7)IOC和DI:

    IOC :控制反转,将对象的创建权交给了Spring.

    DI :DependencyInjection 依赖注入.需要有IOC的环境,Spring创建这个类的过程中,Spring将类的依赖的属性设置进去.

    spring 学习总结

    配置STS的XML的提示

    复制路径:

    * http://www.springframework.org/schema/beans/spring-beans.xsd

    查找XML Catalog:

    spring 学习总结

    点击Add..

    spring 学习总结

    Spring中的工厂

    1)ApplicationContext

    spring 学习总结

    2)BeanFactory

    spring 学习总结

    3) BeanFactory和ApplicationContext的区别:

    BeanFactory :是在getBean的时候才会生成类的实例.

    ApplicationContext :在加载applicationContext.xml时候就会创建.

    Spring的相关配置

    1)id属性和name属性标签的配置

    id:Bean起个名字.在约束中采用ID的约束:唯一.必须以字母开始,可以使用字母、数字、连字符、下划线、句话、冒。id不能出现特殊字符.

    <bean id=”bookAction”>

    name:Bean起个名字.没有采用ID的约束.name:出现特殊字符.如果<bean>没有id的话 , name可以当做id使用.

    * 整合struts1的时候:

    <bean name=”/loginAction” >

    2)scope属性:Bean的作用范围.

    * singleton :默认值,单例的.

    * prototype:多例的.

    * request:WEB项目中,Spring创建一个Bean的对象,将对象存入到request域中.

    * session:WEB项目中,Spring创建一个Bean的对象,将对象存入到session域中.

    * globalSession:WEB项目中,应用在Porlet环境.如果没有Porlet环境那么globalSession相当于session.

    3)Bean的生命周期的配置

    通过配置<bean>标签上的init-method作为Bean的初始化的时候执行的方法,配置destroy-method作为Bean的销毁的时候执行的方法。销毁方法想要执行,需要是单例创建的Bean而且在工厂关闭的时候,Bean才会被销毁.

    Spring的Bean的管理XML的方式

    spring 学习总结

    spring 学习总结

    spring 学习总结

    spring 学习总结

    复杂类型的注入

    spring 学习总结

    Spring的分配置文件的开发

    一种:创建工厂的时候加载多个配置文件:

    ApplicationContext applicationContext = newClassPathXmlApplicationContext("applicationContext.xml","applicationContext2.xml");

    二种:在一个配置文件中包含另一个配置文件:

    <importresource="applicationContext2.xml"></import>

     

    【原文】https://www.toutiao.com/i6575006422340207108/

  • 相关阅读:
    iptables详解(7):iptables扩展之udp扩展与icmp扩展
    iptables详解(6):iptables扩展匹配条件之’–tcp-flags’
    iptables(五)iptables匹配条件总结之二(常用扩展模块)
    Neutron之OVS
    Neutron三层网络服务实现原理
    Neutron二层网络服务实现原理
    LoadBalancerv2的原理分析
    Haproxy介绍
    基于zepto的手机焦点图touchstart touchmove
    zepto.js 处理Touch事件(实例)
  • 原文地址:https://www.cnblogs.com/ftl1012/p/9584997.html
Copyright © 2020-2023  润新知