zoukankan      html  css  js  c++  java
  • Spring学习笔记

    第一部分:Spring架构的分析。  两个核心概念:IoC、AOP。  IoC:实际上依靠工厂模式,实现控制反转。  

    步骤:读取配置文件,利用Java反射机制,生成对象,将对象返回给调用者。  

    了解两个类:BeanFactory和ApplictionContext    

    Spring源码结构的解读:用Ant生成Spring相关包,文档等。   CVS下载Spring源码。安装Spring。    

    Ioc详解:  Bean的生命周期:定义、初始化、使用、销毁。  Bean的初始化。

    通过AutoWrite、dependency-check、Setter方法、setBeabFactory、   通过配置初始化前、后方法等。

    Bean创建的方式有:单例创建,原型创建。Spring只能管理单例创建的Bean。    

    propertyConfigurer、ProertyOverrideConfiger 配置其它需要加入到Spring里的文件。  

    初始化spring的方法:ClassPathXmlApplicationContext  

    BeanFactoryAware与BeanNameAware ApplicationContextAware  Spring属性编辑器。事件监听器。    

    BeanFactory提供管理和操作Bean的功能。  

    ApplictionContext继承了BeanFactory类,所以提供比BeanFactory更强大的功能。  在整合Web项目时候,ctx可以自动初始化。可以通过ContextLoaderListener或ContextLoaderServlet实现自动加载。  

    AOP详解:  核心关注点,横切关注点,建议,切入点,织入。OOP编程与AOP编程。提供系统级的服务。与具体业务关系不大。  常用于系统级服务,比如:日志、事务、权限等。  

    使用AOP编程的步骤:先抽象出横切面,即次要业务,再用一个建议者(advice)管理横面,  定义需要使用横切功能的点(pointcut),把切面织入(weave)进去。方式有前,后,中等。  

    <tx:advice id="txAdvice" transaction-manager="reportTransactionManager">     

      <tx:attributes>        

        <tx:method name="*" rollback-for="Exception"/>     

      </tx:attributes>  

    </tx:advice>  

    <aop:config>   

      <aop:pointcut id="txOperation"  expression="@annotation(org.springframework.transaction.annotation.Transactional)" />     

       <aop:advisor advice-ref="txAdvice" pointcut-ref="txOperation"/>        

    </aop:config>    

    Spring架构模块:AOP、IOC、ORM、DAO、Spring Web、Spring上下文、Spring MVC

    第二部分:Spring应用开发。   

    1.JNDI(Java Naming and Directory Interface):java命名目录服务。

    一般用于数据源配置。   使用JNDI常用的三个类:AbstractJndiLocator JndiObjectFactoryBean JndiObjectTargetSource   建议直接使用JndiObjectFactoryBean这种形式,它是用于产品部署场合。而JndiObjectTargetSource用于产品开发场合。   JndiTemplate类,用于改造操作。方便使用。    

    2.JTA(Java Transaction API):Java事务API.   platformTransactionManager:Spring的事务管理中,这是最基本的接口。  

    已经实现上面接口的常用事务管理器:JDBC事务、JTA事务、Hibernate事务、JDO事务、OJB事务、JMS事务。   

    TransactionDefinition:事务的属性定义。   7种事务移植策略[事务的传播属性]:    PROPAGATION_REQUIRED(如果已在事务中,则使用原来的,否则新开一个事务)     PROPAGATION_SUPPORTS(如有事务,则以事务的形式运行,如没有事务,则以非事务的形式运行)     PROPAGATION_MANDATORY(必须在一个事务中运行)     PROPAGATION_REQUIRES_NEW(在新事务中运行,即每次启动一个事务)     PROPAGATION_NOT_SUPPORTED(不能运行在事务中,如果有事务,则客户事务挂起)     PROPAGATION_NEVER(不能运行在事务中,否则抛异常)     PROPAGATION_NESTED(支持嵌套式事务)   TransactionTemplate事务模板的使用。[在编程式事务管理里,可以使用]    

    3.JMS(Java Message Service):Java消息服务。   

    JmsTemplate的使用:配置相关的xml,主要有目的地的配置 template的配置   JmsTemplate与MessageCreator结合使用,完成消息的发送工作。   详细了解消息的发送与接收原理。Bean转换功能的实现。    

    4.JavaMail:Java邮件服务。   MailSender接口的两个实现类:CosMailSenderImpl、JavaMailSenderImpl   CosMailSenderImpl用于一般邮件的发送,在配置文件里配置CosMailSenderImpl和SimpleMailMessage信息。   JavaMailSenderImpl用于发送复杂的邮件,配置JavaMailSenderImpl 用MimeMessagePreparator的回调方法,实现邮件发送。    

    5.EJB(Enterprise JavaBean):企业级Bean。Spring对无状态会话Bean有很好的支持。   几种Bean 无状态、有状态、JMSBean(消息驱动Bean)等。主要了解Spring对AbstractStatelessSessionBean的支持。     

    6.持久化服务:DAO ORM JDBC   了解JdbcDaoSupport HibernateDaoSupport JdoDaoSupport的使用。它们都继承了DaoSupport。   具体的使用一般是用它们的模板类:JdbcTemplate/HibernateTemplate/JdoTemplate类进行数据操作。   以JdbcTemplate的使用为例子,说明其应用的基本思路:   1.配置数据源,把数据关联到JdbcTemplate上,只需关联一次,即可满足所有的要使用的JdbcTemplate。    [扩展知识点:Spring配置数据源的方式 dbcp BoneCP c3p0]   2.JDBC事务的管理:DataSourceTransactionManager   3.Spring与Hibernate的集成。了解关系型数据与JavaBean对象的映射。     

    7.任务调度服务:Queatz Timer Spring集成了上面两种定义任务调度服务。   一个是开源社区里的项目,一个是Java2版本里提供的任务调度器。   Queatz与Spring集成要了解的几个常用类:QueatzJobBean JobDetailBean SimpleTriggerBean等。   重点看MethodInvokingJobDetailFactoryBean   Timer与上面的那个类似。它是Java本来就带有的类。不用重新学习新的一套类库。   基本使用:Spring通过配置文件,定义任务执行的时间点与周期,我们只需要开要执行的任务类即可。   

    8.远程服务:支持RMI、Hessian、Burlap、HTTP Invoker、Web服务(JAX-RPC)、企业Bean。   补充知识点:远程服务调用,参数的传递,通常参数类序列化,以便能在客户端与服务器端进行交互。   RMI(Remote Method Invocation):JDK本身提供的用于支持分布式开发的技术。在网络受限制的情况不适用。   Hession与Burlap:由于上述的技术,服务器端与客户端都要用Java语言编写,并且它们之间不能有防火墙,    正是这些原因,出现了这两种技术。要用到第三方的序列化机制。   HTTP Invoker:集合了上面三种技术的优点。JDK本身提供的序列化机制。支持在网络受限的情况使用。   

    第三部分:Spring高级应用。     

    1.视图技术集成:Struts、Spring MVC、Tapestry、JSF等。    Spring MVC DispatherServlet前端控制器,用于请求分发。    处理流程:     DispatherServlet接收http请求,分发给相应用Control,Control转换请求信息,处理请求,     返回ModelAndView 解释 返回到视图。       

    Tapestry与Spring集成:Tapestry是基于组件、事件的OO编写Web视图层的框架。     几个概念:Visit Engine HttpSession Page和组件模板。。     Tapestry由三部分组成:HTML模板,页面规范文件,Java文件。         

    JSF(JavaServer Faces):基于Web前端标准而开发的一个框架。       

    2.Spring安全框架:Acegi 与事务管理一样,都是声明式管理,原理相同,都是抽象出切面单独进行开发。     

    如何有时间可以继续深入学习的知识:Spring安全框架、Tapestry/JSF前端框架、JavaMail的使用。 这些都是对特定领域的知识拓展,可以了解下。               

  • 相关阅读:
    MDI窗体容器
    记事本制作、流的初步引用、窗口的三种显示类型
    ListVies控件的应用
    变量常量
    百度地图自定义离线地图
    通过配置文件方式修改 axios 请求地址
    百度地图坐标偏差
    Vue 全局指令限制输入框输入
    axios post请求发送数组
    WebSocket
  • 原文地址:https://www.cnblogs.com/lils/p/3723480.html
Copyright © 2011-2022 走看看