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课堂笔记(超级详细版) 本资源主要讲解了Spring框架的基础概念和应用,涵盖了面向接口编程、IOC/DI、AOP、Spring应用IOC/DI、Spring应用AOP、Struts2.1.6 + Spring2.5.6 + Hibernate3.3.2整合、Spring...
Spring学习笔记(马士兵spring视频笔记).docSpring学习笔记(马士兵spring视频笔记).docSpring学习笔记(马士兵spring视频笔记).docSpring学习笔记(马士兵spring视频笔记).doc
马士兵老师是知名的Java教育专家,他的Spring框架学习笔记深入浅出,对于初学者和进阶者来说都是一份宝贵的资源。这份笔记涵盖了Spring的核心概念、配置、AOP(面向切面编程)、DI(依赖注入)等关键知识点。 1. **...
马士兵Spring课堂笔记(详细版) 马士兵spring视频笔记
马士兵老师的MyBatis学习笔记主要涵盖了以下几个核心知识点: 1. **MyBatis安装与环境搭建**:首先,你需要配置Java开发环境,并了解Maven或Gradle构建工具,因为MyBatis通常与这些工具结合使用来管理依赖。然后,...
根据提供的文件信息,我们可以归纳出一系列关于Spring框架的关键知识点,主要围绕着面向接口编程、IOC/DI、AOP以及Spring框架的基本使用等几个方面展开。 ### 面向接口编程 面向接口编程(面向抽象编程)是一种...
马士兵Springboot课堂笔记
《马士兵S2SH笔记》是一份集合了Struts2、Spring和Hibernate三大框架学习精髓的资料合集,由他人整理并基于马士兵老师的教学内容编撰而成。这份笔记旨在帮助学习者深入理解和掌握Java Web开发中的核心组件,构建高效...
### Spring5概述与IOC原理及应用 #### Spring5框架概览 Spring框架是一个开源的Java平台,用于构建企业级应用程序和服务。Spring5是该框架的一个重要版本,它提供了丰富的功能来帮助开发者简化Java应用程序的开发...
最后,“Spring学习笔记(马士兵spring视频笔记).doc”涵盖了Spring框架的关键内容。Spring是一个全面的企业级应用框架,提供了依赖注入(DI)、面向切面编程(AOP)、数据访问、Web应用、事务管理等多种功能。笔记中...
8. **Spring与Hibernate**(马士兵spring.doc、马士兵hibernate学习笔记(文字整理版).doc):虽然Spring和Hibernate属于JavaEE领域,但它们也常在JavaSE项目中使用。Spring是一个全面的框架,涵盖依赖注入、AOP、MVC...
马士兵Spring学习笔记2011.doc可能涵盖了Spring的IoC容器、AOP、Bean的生命周期、数据访问(如JDBC、Hibernate集成)、Spring MVC以及Spring Boot等内容。 综合这三个框架,SSH组合提供了从前端到后端的完整解决...
JavaSE+JavaEE企业级开发 全程笔记免费下载,内容详尽,doc文档,共173页,六号字体,双栏排版。 *、Java 基础, *、web, *、数据库(Mysql Oracle jdbc Hibernate hql/sql), *、JSP, *、Ajax *、Struts, *、...
SpringMVC1,回顾MVC1.1,什么是MVC MVC是模型(Model),视图(View),控制器(Controller)的简写,是一种软件设计规范。是将数据,显示,业务逻辑分离的方法来组织代码。 MVC主要作用是降低了视图与业务逻辑间的...
SpringBoot是Spring框架的一种简化和快速开发方式,它旨在简化Spring应用的初始搭建以及开发过程。这个"springboot学习笔记源码"包含了基于JSP、JPA和FreeMarker的实践项目,非常适合初学者或者希望深入理解...
在提供的文件中,"马士兵hibernate学习笔记(原版)-你信不信_我反正是信了.doc"可能包含有关Hibernate的基础知识、配置、实体映射、查询等方面的内容,是学习和理解Hibernate的好资源。"Spring和Hibernate"可能涵盖了...
《Hibernate学习笔记——马士兵教程解析》 在Java开发领域,ORM(Object-Relational Mapping)框架的使用已经非常普遍,其中Hibernate作为一款优秀的ORM框架,因其强大的功能和易用性深受开发者喜爱。本文将根据马...
"马士兵Struts2学习笔记2011.doc"可能包含了马士兵教育机构早期对于Struts2框架的讲解,涵盖了2011年时Struts2的主要特性,比如动态方法调用、插件体系、Tiles视图技术、Spring集成以及Ajax支持等。动态方法调用允许...