`
dreamoftch
  • 浏览: 495578 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

马士兵 spring 笔记

 
阅读更多

spring 马士兵资料可以参考:

<a href="http://www.open-open.com/doc/view/097481c2aa0549af81b634e0d3bc3b2e">spring 马士兵资料</a>

 

转自: 马士兵 spring 笔记

知识点名称 介绍 工作重要程度 面试重要程度 方法建议 
IOC XML   ***   练 
IOC Annotation   ***   练 
IOC 注入方式(两种)   *** * 练+背 
简单属性   *     
集合注入   *   查 
自动装配   * *   
生命周期   * * 查 
AOP概念     ***   
AOP配置   *   查 
事务管理AOP(xml annotation) *** ** 练+背 
hibernateTemplate   ***     
架构   *** *** 练+理解+说 
OpenSessionInView   *** **   
CharacterEncodingFilter   ***     
TestContext   *     
SpringJDBCTemplate       用到现学 

课程内容
1.     面向接口(抽象)编程的概念与好处

2.     IOC/DI的概念与好处

a)     inversion of control

b)     dependency injection

3.     AOP的概念与好处

4.     Spring简介

5.     Spring应用IOC/DI(重要)

a)     xml

b)     annotation

6.     Spring应用AOP(重要)

a)     xml

b)     annotation

7.     Struts2.1.6 + Spring2.5.6 + Hibernate3.3.2整合(重要)

a)     opensessionInviewfilter(记住,解决什么问题,怎么解决)

8.     Spring JDBC

面向接口编程(面向抽象编程)
1.     场景:用户添加

2.     Spring_0100_AbstractOrientedProgramming

a)     不是AOP:Aspect Oriented Programming

3.     好处:灵活

什么是IOC(DI),有什么好处
1.     把自己new的东西改为由容器提供

a)     初始化具体值

b)     装配

2.     好处:灵活装配

Spring简介
1.     项目名称:Spring_0200_IOC_Introduction

2.     环境搭建

a)     只用IOC

                i.          spring.jar , jarkata-commons/commons-loggin.jar

3.     IOC容器

a)     实例化具体bean

b)     动态装配

4.     AOP支持

a)     安全检查

b)     管理transaction

Spring IOC配置与应用
1.     FAQ:不给提示:

a)     window – preferences – myeclipse – xml – xml catalog

b)     User Specified Entries – add

                 i.          Location:    D:/share/0900_Spring/soft/spring-framework-2.5.6/dist/resources/spring-beans-2.5.xsd

                ii.          URI:                        file:///D:/share/0900_Spring/soft/spring-framework-2.5.6/dist/resources/spring-beans-2.5.xsd

               iii.          Key Type:    Schema Location

              iv.          Key:                         http://www.springframework.org/schema/beans/spring-beans-2.5.xsd

2.     注入类型

a)     Spring_0300_IOC_Injection_Type

b)     setter(重要)

c)     构造方法(可以忘记)

d)     接口注入(可以忘记)

3.     id vs. name

a)     Spring_0400_IOC_Id_Name

b)     name可以用特殊字符

4.     简单属性的注入

a)     Spring_0500_IOC_SimpleProperty

b)     <property name=… value=….>

5.     <bean 中的scope属性

a)     Spring_0600_IOC_Bean_Scope

b)     singleton 单例

c)     proptotype 每次创建新的对象

6.     集合注入

a)     Spring_0700_IOC_Collections

b)     很少用,不重要!参考程序

7.     自动装配

a)     Spring_0800_IOC_AutoWire

b)     byName

c)     byType

d)     如果所有的bean都用同一种,可以使用beans的属性:default-autowire

8.     生命周期

a)     Spring_0900_IOC_Life_Cycle

b)     lazy-init (不重要)

c)     init-method destroy-methd 不要和prototype一起用(了解)

9.     Annotation第一步:

a)     修改xml文件,参考文档<context:annotation-config />

10.  @Autowired

a)     默认按类型by type

b)     如果想用byName,使用@Qulifier

c)     写在private field(第三种注入形式)(不建议,破坏封装)

d)     如果写在set上,@qualifier需要写在参数上

11.  @Resource(重要)

a)     加入:j2ee/common-annotations.jar

b)     默认按名称,名称找不到,按类型

c)     可以指定特定名称

d)     推荐使用

e)     不足:如果没有源码,就无法运用annotation,只能使用xml

12.  @Component @Service @Controller @Repository

a)     初始化的名字默认为类名首字母小写

b)     可以指定初始化bean的名字

13.  @Scope

14.  @PostConstruct = init-method; @PreDestroy = destroy-method;

 

什么是AOP
1.     面向切面编程Aspect-Oriented-Programming

a)     是对面向对象的思维方式的有力补充

2.     Spring_1400_AOP_Introduction

3.     好处:可以动态的添加和删除在切面上的逻辑而不影响原来的执行代码

a)     Filter

b)     Struts2的interceptor

4.     概念:

a)     JoinPoint

b)     PointCut

c)     Aspect(切面)

d)     Advice

e)     Target

f)      Weave

Spring AOP配置与应用
1.     两种方式:

a)     使用Annotation

b)     使用xml

2.     Annotation

a)     加上对应的xsd文件spring-aop.xsd

b)     beans.xml <aop:aspectj-autoproxy />

c)     此时就可以解析对应的Annotation了

d)     建立我们的拦截类

e)     用@Aspect注解这个类

f)      建立处理方法

g)     用@Before来注解方法

h)     写明白切入点(execution …….)

i)      让spring对我们的拦截器类进行管理@Component

3.     常见的Annotation:

a)     @Pointcut

b)     @Before

c)     @AfterReturning

d)     @AfterThrowing

e)     @After

f)      @Around

4.     织入点语法

a)     void !void

b)     参考文档(* ..)

5.     xml配置AOP

a)     把interceptor对象初始化

b)     <aop:config

                i.          <aop:aspect …..

1.     <aop:pointcut

2.     <aop:before

Spring整合Hibernate
1.     Spring 指定datasource

a)     参考文档,找dbcp.BasicDataSource

                i.          c3p0

               ii.          dbcp

             iii.          proxool

b)     在DAO或者Service中注入dataSource

c)     在Spring中可以使用PropertyPlaceHolderConfigure来读取Properties文件的内容

2.     Spring整合Hibernate

a)     <bean .. AnnotationSessionFactoryBean>

                i.          <property dataSource

               ii.          <annotatedClasses

b)     引入hibernate 系列jar包

c)     User上加Annotation

d)     UserDAO或者UserServie 注入SessionFactory

e)     jar包问题一个一个解决

3.     声明式的事务管理

a)     事务加在DAO层还是Service层?

b)     annotation

                i.          加入annotation.xsd

               ii.          加入txManager bean

             iii.          <tx:annotation-driven

             iv.          在需要事务的方法上加:@Transactional

               v.          需要注意,使用SessionFactory.getCurrentSession 不要使用OpenSession

c)     @Transactional详解

                i.          什么时候rollback 

1.     运行期异常,非运行期异常不会触发rollback

2.     必须uncheck (没有catch)

3.     不管什么异常,只要你catch了,spring就会放弃管理

4.     事务传播特性:propagation_required

5.     read_only

d)     xml(推荐,可以同时配置好多方法)

                i.          <bean txmanager

               ii.          <aop:config 

1.     <aop:pointcut

2.     <aop:advisor pointcut-ref advice-ref

             iii.          <tx:advice: id transaction-manager = 

e)     HibernateTemplate、HibernateCallback、HibernateDaoSupport(不重要)介绍

                i.          设计模式:Template Method

               ii.          Callback:回调/钩子函数

             iii.          第一种:(建议)

1.     在spring中初始化HibernateTemplate,注入sessionFactory

2.     DAO里注入HibernateTemplate

3.     save写getHibernateTemplate.save();

             iv.          第二种:

1.     从HibernateDaoSupport继承

2.     必须写在xml文件中,无法使用Annotation,因为set方法在父类中,而且是final的

f)      spring整合hibernate的时候使用packagesToScan属性,可以让spring自动扫描对应包下面的实体类

Struts2.1.6 + Spring2.5.6 + Hibernate3.3.2
1.     需要的jar包列表

jar包名称
 所在位置
 说明
 
antlr-2.7.6.jar
 hibernate/lib/required
 解析HQL
 
aspectjrt
 spring/lib/aspectj
 AOP
 
aspectjweaver
 ..
 AOP
 
cglib-nodep-2.1_3.jar
 spring/lib/cglib
 代理,二进制增强
 
common-annotations.jar
 spring/lib/j2ee
 @Resource
 
commons-collections-3.1.jar
 hibernate/lib/required
 集合框架
 
commons-fileupload-1.2.1.jar
 struts/lib
 struts
 
commons-io-1.3.2
 struts/lib
 struts
 
commons-logging-1.1.1
 单独下载,删除1.0.4(struts/lib)
 struts

spring
 
dom4j-1.6.1.jar
 hibernate/required
 解析xml
 
ejb3-persistence
 hibernate-annotation/lib
 @Entity
 
freemarker-2.3.13
 struts/lib
 struts
 
hibernate3.jar
 hibernate
  
 
hibernate-annotations
 hibernate-annotation/
  
 
hibernate-common-annotations
 hibernate-annotation/lib
  
 
javassist-3.9.0.GA.jar
 hiberante/lib/required
 hibernate
 
jta-1.1.jar
 ..
 hibernate transaction
 
junit4.5
  
  
 
mysql-
  
  
 
ognl-2.6.11.jar
 struts/lib
  
 
slf4j-api-1.5.8.jar
 hibernate/lib/required
 hibernate-log
 
slf4j-nop-1.5.8.jar
 hibernate/lib/required
  
 
spring.jar
 spring/dist
  
 
struts2-core-2.1.6.jar
 struts/lib
  
 
xwork-2.1.2.jar
 struts/lib
 struts2
 
commons-dbcp
 spring/lib/jarkata-commons
  
 
commons-pool.jar
 ..
  
 
struts2-spring-plugin-2.1.6.jar
 struts/lib
  
 


2.     BestPractice:

a)     将这些所有的jar包保存到一个位置,使用的时候直接copy

3.     步骤

a)     加入jar包

b)     首先整合Spring + Hibernate

                i.          建立对应的package

1.     dao / dao.impl / model / service / service.impl/ test

               ii.          建立对应的接口与类框架

1.     S2SH_01

             iii.          建立spring的配置文件(建议自己保留一份经常使用的配置文件,以后用到的时候直接copy改)

             iv.          建立数据库

               v.          加入Hibernate注解

1.     在实体类上加相应注解@Entity @Id等

2.     在beans配置文件配置对应的实体类,使之受管

             vi.          写dao service的实现

            vii.          加入Spring注解

1.     在对应Service及DAO实现中加入@Component,让spring对其初始化

2.     在Service上加入@Transactional或者使用xml方式(此处建议后者,因为更简单)

3.     在DAO中注入sessionFactory

4.     在Service中注入DAO

5.     写DAO与Service的实现

           viii.          写测试

c)     整合Struts2

                i.          结合点:Struts2的Action由Spring产生

               ii.          步骤:

1.     修改web.xml加入 struts的filter

2.     再加入spring的listener,这样的话,webapp一旦启动,spring容器就初始化了

3.     规划struts的action和jsp展现

4.     加入struts.xml

a)     修改配置,由spring替代struts产生Action对象

5.     修改action配置

a)     把类名改为bean对象的名称,这个时候就可以使用首字母小写了

b)     @Scope(“prototype”)不要忘记

             iii.          struts的读常量:

1.     struts-default.xml 

2.     struts-plugin.xml

3.     struts.xml

4.     struts.properties

5.     web.xml

             iv.          中文问题:

1.     Struts2.1.8已经修正,只需要改i18n.encoding = gbk

2.     使用spring的characterencoding

3.     需要严格注意filter的顺序

4.     需要加到Struts2的filter前面

               v.          LazyInitializationException

1.     OpenSessionInViewFilter

2.     需要严格顺序问题

3.     需要加到struts2的filter前面

 

分享到:
评论

相关推荐

    马士兵Spring课堂笔记(超级详细版).pdf

    马士兵Spring课堂笔记(超级详细版) 本资源主要讲解了Spring框架的基础概念和应用,涵盖了面向接口编程、IOC/DI、AOP、Spring应用IOC/DI、Spring应用AOP、Struts2.1.6 + Spring2.5.6 + Hibernate3.3.2整合、Spring...

    Spring学习笔记(马士兵spring视频笔记).doc

    Spring学习笔记(马士兵spring视频笔记).docSpring学习笔记(马士兵spring视频笔记).docSpring学习笔记(马士兵spring视频笔记).docSpring学习笔记(马士兵spring视频笔记).doc

    马士兵老师spring框架学习笔记

    马士兵老师是知名的Java教育专家,他的Spring框架学习笔记深入浅出,对于初学者和进阶者来说都是一份宝贵的资源。这份笔记涵盖了Spring的核心概念、配置、AOP(面向切面编程)、DI(依赖注入)等关键知识点。 1. **...

    马士兵Spring课堂笔记(详细版)

    马士兵Spring课堂笔记(详细版) 马士兵spring视频笔记

    马士兵 mybatis学习笔记

    马士兵老师的MyBatis学习笔记主要涵盖了以下几个核心知识点: 1. **MyBatis安装与环境搭建**:首先,你需要配置Java开发环境,并了解Maven或Gradle构建工具,因为MyBatis通常与这些工具结合使用来管理依赖。然后,...

    马士兵Spring学习笔记.docx

    根据提供的文件信息,我们可以归纳出一系列关于Spring框架的关键知识点,主要围绕着面向接口编程、IOC/DI、AOP以及Spring框架的基本使用等几个方面展开。 ### 面向接口编程 面向接口编程(面向抽象编程)是一种...

    马士兵Springboot课堂笔记

    马士兵Springboot课堂笔记

    马士兵S2SH笔记

    《马士兵S2SH笔记》是一份集合了Struts2、Spring和Hibernate三大框架学习精髓的资料合集,由他人整理并基于马士兵老师的教学内容编撰而成。这份笔记旨在帮助学习者深入理解和掌握Java Web开发中的核心组件,构建高效...

    我的Spring5笔记

    ### Spring5概述与IOC原理及应用 #### Spring5框架概览 Spring框架是一个开源的Java平台,用于构建企业级应用程序和服务。Spring5是该框架的一个重要版本,它提供了丰富的功能来帮助开发者简化Java应用程序的开发...

    SSH学习笔记--整理.rar

    最后,“Spring学习笔记(马士兵spring视频笔记).doc”涵盖了Spring框架的关键内容。Spring是一个全面的企业级应用框架,提供了依赖注入(DI)、面向切面编程(AOP)、数据访问、Web应用、事务管理等多种功能。笔记中...

    JAVASE学习笔记

    8. **Spring与Hibernate**(马士兵spring.doc、马士兵hibernate学习笔记(文字整理版).doc):虽然Spring和Hibernate属于JavaEE领域,但它们也常在JavaSE项目中使用。Spring是一个全面的框架,涵盖依赖注入、AOP、MVC...

    SSH的笔记整理和重点讲解

    马士兵Spring学习笔记2011.doc可能涵盖了Spring的IoC容器、AOP、Bean的生命周期、数据访问(如JDBC、Hibernate集成)、Spring MVC以及Spring Boot等内容。 综合这三个框架,SSH组合提供了从前端到后端的完整解决...

    Java 从入门到精通全程笔记(JavaSE+JavaEE :史上最全笔记)

    JavaSE+JavaEE企业级开发 全程笔记免费下载,内容详尽,doc文档,共173页,六号字体,双栏排版。 *、Java 基础, *、web, *、数据库(Mysql Oracle jdbc Hibernate hql/sql), *、JSP, *、Ajax *、Struts, *、...

    study-SpringMVC:SpringMVC的学习笔记

    SpringMVC1,回顾MVC1.1,什么是MVC MVC是模型(Model),视图(View),控制器(Controller)的简写,是一种软件设计规范。是将数据,显示,业务逻辑分离的方法来组织代码。 MVC主要作用是降低了视图与业务逻辑间的...

    springboot学习笔记源码

    SpringBoot是Spring框架的一种简化和快速开发方式,它旨在简化Spring应用的初始搭建以及开发过程。这个"springboot学习笔记源码"包含了基于JSP、JPA和FreeMarker的实践项目,非常适合初学者或者希望深入理解...

    Struts2、Spring和Hibernate应用实例

    在提供的文件中,"马士兵hibernate学习笔记(原版)-你信不信_我反正是信了.doc"可能包含有关Hibernate的基础知识、配置、实体映射、查询等方面的内容,是学习和理解Hibernate的好资源。"Spring和Hibernate"可能涵盖了...

    hibernate学习笔记mashibing

    《Hibernate学习笔记——马士兵教程解析》 在Java开发领域,ORM(Object-Relational Mapping)框架的使用已经非常普遍,其中Hibernate作为一款优秀的ORM框架,因其强大的功能和易用性深受开发者喜爱。本文将根据马...

    struts2资料

    "马士兵Struts2学习笔记2011.doc"可能包含了马士兵教育机构早期对于Struts2框架的讲解,涵盖了2011年时Struts2的主要特性,比如动态方法调用、插件体系、Tiles视图技术、Spring集成以及Ajax支持等。动态方法调用允许...

Global site tag (gtag.js) - Google Analytics