Spring学习笔记(马士兵spring视频笔记)
马士兵
第一部分:J2se学习视频内容包括:尚学堂科技_马士兵_JA V A视频教程_JDK5.0_下载-安装-配置尚学堂科技_马士兵_JA V A视频教程_J2SE_5.0_第01章_JA V A简介_源代码_及重要说明尚学堂科技_马士兵_JA V A视频教程_J2SE_5.0_第02章_递归补充尚学堂科技_马士兵_JA V A视频教程_J2SE_5.0_第02章_基础语法尚学堂科技_马士兵_JA V A视频教程_J2SE_5.0_第03章_面向对象尚学堂科技_马士兵_JA V A视频教程_J2SE_5.0_第04章_异常处理尚学堂科技_马士兵_JA V A视频教程_J2SE_5.0_第05章_数组尚学堂科技_马士兵_JA V A视频教程_J2SE_5.0_第06章_常用类尚学堂科技_马士兵_JA V A视频教程_J2SE_5.0_第07章_容器尚学堂科技_马士兵_JA V A视频教程_J2SE_5.0_第08章_IO尚学堂科技_马士兵_JA V A视频教程_J2SE_5.0_第09章_线程尚学堂科技_马士兵_JA V A视频教程_J2SE_5.0_第10章_网络尚学堂科技_马士兵_JA V A视频教程_J2SE_5.0_第11章_GUI尚学堂科技_马士兵_JA V A视频教程_J2SE_5.0_专题_日期处理尚学堂科技_马士兵_JA V A视频教程_J2SE_专题_正则表达式反射avi◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆第二部分:j2se练习项目视频内容包括:尚学堂科技_马士兵_在线聊天系统雏形视频教程_java_eclipse尚学堂科技_马士兵_坦克大战视频教程_java_eclipse尚学堂科技_马士兵_坦克大战图片版尚学堂科技_马士兵_JA V A_坦克大战网络版视频教程尚学堂科技_马士兵_snake_贪吃蛇内部视频◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆第三部分数据库视频Oracle视频内容包括:01——53讲avi格式◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆第四部分:JDBC和MySQL视频,内容包括:1_lomboz_eclipse_jdbc2_mysql_avi3_连接池的设计思路.avi◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆第五部分:HTML & CSS & JA V ASCRIPT 视频:Html & CSS 视频内容简介:01_html简单介绍和meta标签.avi02_a_路径问题等等.avi03_学习方法_其他常用标签.avi04_1_note.avi04_表格和表单_1.avi05_表格和表单_2.avi06_Frame.avi07_Dreamweaver.avi08_CSS_1.avi09_CSS_2_选择方式.avi10_CSS_3.avi11_CSS_4.aviJavaScript 视频简介:01_JS初步及调试.avi02_JS基本语法.avi03_函数_事件处理_1.avi04_事件处理_2.avi05_内置对象_DOM_BOM.avi06_趣味.avi07_实用.avi08_表单验证.avi09_表单验证_new.avi10_后台框架.avi11_后台框架_2.avi12_TREE.avi◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆第六部分:Servlet & JSP视频——内容包括:1 tomcat的安装使用,配置2 servlet & jsp 视频1——30节jsp的练习项目内容包括:3 简单bbs项目3 2007美化BBS项目4 网上商城项目视频4 网上商城项目视频讲解视频◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆第七部分:J2EE学习视频包括:DRP项目框架视频学习:Struts视频Hibernate视频Spring视频提高部分:uml统一建模语言视频SSH项目视频:oa办公自动化系统视频crm项目视频银行系统视频ejb3.0视频J2ME_3G简介资料面试材料:面试题大汇总+笔记+技巧尚学堂视频学习顺序(必看)尚学堂视频学习顺序2009-04-22 21:19尚学堂科技_马士兵_JDK5.0下载-安装-配置尚学堂科技_马士兵_JA V A视频教程_J2SE_5.0_第1章_JA V A简介_源代码_及重要说明尚学堂科技_马士兵_JA V A视频教程_J2SE_5.0_第2章_基础语法尚学堂科技_马士兵_JA V A视频教程_J2SE_5.0_第2章_递归补充尚学堂科技_马士兵_JA V A视频教程_J2SE_5.0_第3章_面向对象尚学堂科技_马士兵_JA V A视频教程_J2SE_5.0_第4章_异常处理尚学堂科技_马士兵_JA V A视频教程_J2SE_5.0_第5章_数组尚学堂科技_马士兵_JA V A视频教程_J2SE_5.0_第5章_数组尚学堂科技_马士兵_JA V A视频教程_J2SE_5.0_第6章_常用类尚学堂科技_马士兵_JA V A视频教程_J2SE_5.0_第7章_容器尚学堂科技_马士兵_JA V A视频教程_J2SE_5.0_第8章_IO尚学堂科技_马士兵_JA V A视频教程_J2SE_5.0_第9章_线程尚学堂科技_马士兵_JA V A视频教程_J2SE_5.0_第10章_网络尚学堂科技_马士兵_JA V A视频教程_J2SE_5.0_第11章_GUI尚学堂科技_马士兵_在线聊天系统雏形视频教程_java_eclipse尚学堂科技_马士兵_坦克大战视频教程_java_eclipse尚学堂科技_马士兵_坦克大战图片版尚学堂科技_马士兵_坦克大战网络版视频教程尚学堂科技_马士兵_JA V A视频教程_J2SE_5.0_专题_日期处理尚学堂科技_马士兵_JA V A视频教程_J2SE_5.0_专题_正则表达式尚学堂科技_张志宇_SERVLET_JSP_视频教程_第一版尚学堂科技_马士兵_JDBC_MYSQL_BBS项目课堂实录视频教程尚学堂科技_马士兵_BBS_项目补充_MySQL简明视频教程尚学堂科技_马士兵_JA V A_系列视频教程_BBS_2007尚学堂科技_马士兵_JA V A_网上商城项目视频讲解尚学堂科技_马士兵_轻松愉快LINUX视频教程尚学堂科技_马士兵_设计模式_01_Observer尚学堂科技_王勇_JA V A视频教程_XML01_XML尚学堂科技_王勇_JA V A视频教程_XML02_XSL尚学堂科技_王勇_JA V A视频教程_XML03_DTD_Schema尚学堂科技_王勇_JA V A视频教程_XML04_JDOM对XML文件的读取尚学堂科技_王勇_JA V A视频教程_Struts01_源代码及重要说明尚学堂科技_王勇_JA V A视频教程_Struts02_多层架构及MVC尚学堂科技_王勇_JA V A视频教程_Struts03_第一个项目尚学堂科技_王勇_JA V A视频教程_Struts04_小结及作业尚学堂科技_王勇_JA V A视频教程_Struts05_Struts标签库尚学堂科技_王勇_JA V A视频教程_Struts06_JSTL_EL表达式尚学堂科技_王勇_JA V A视频教程_Struts07_JSTL_核心库尚学堂科技_王勇_JA V A视频教程_Struts08_JSTL_格式化库及函数库尚学堂科技_王勇_JA V A视频教程_Struts09_Struts标签库实现用户维护作业尚学堂科技_王勇_JA V A视频教程_Struts10_ActionForm尚学堂科技_王勇_JA V A视频教程_Struts11_ActionForward_ActionMapping_Action尚学堂科技_王勇_JA V A视频教程_Struts12_Java国际化尚学堂科技_王勇_JA V A视频教程_Struts13_Struts及JSTL国际化尚学堂科技_王勇_JA V A视频教程_Struts14_动态验证框架尚学堂科技_王勇_JA V A视频教程_Struts15_声明式异常及个性化异常尚学堂科技_王勇_JA V A视频教程_Struts16_ForwardAction_DispatchAction_Struts模式匹配尚学堂科技_王勇_JA V A视频教程_Struts17_JSTL实现物料维护作业尚学堂科技_王勇_JA V A视频教程_Struts18_Struts回顾尚学堂科技_王勇_JA V A视频教程_Hibernate01_源代码及重要说明尚学堂科技_王勇_JA V A视频教程_Hibernate02_主要接口简介及示例尚学堂科技_王勇_JA V A视频教程_Hibernate03_持久对象的生命周期及Query接口初步尚学堂科技_王勇_JA V A视频教程_Hibernate04_常用映射标签及属性尚学堂科技_王勇_JA V A视频教程_Hibernate05_多对一及一对一关联映射尚学堂科技_王勇_JA V A视频教程_Hibernate06_SessionFlush简介尚学堂科技_王勇_JA V A视频教程_Hibernate07_一对多关联映射尚学堂科技_王勇_JA V A视频教程_Hibernate08_多对多关联映射尚学堂科技_王勇_JA V A视频教程_Hibernate09_Lazy策略尚学堂科技_王勇_JA V A视频教程_Hibernate10_继承映射尚学堂科技_王勇_JA V A视频教程_Hibernate11_其他映射尚学堂科技_王勇_JA V A视频教程_Hibernate12_悲观锁与乐观锁尚学堂科技_王勇_JA V A视频教程_Hibernate13_树形结构作业及HQL尚学堂科技_王勇_JA V A视频教程_Hibernate14_一级缓存_二级缓存_查询缓存尚学堂科技_王勇_JA V A视频教程_Hibernate15_抓取策略尚学堂科技_王勇_JA V A视频教程_Hibernate16_物料管理作业及Hibernate回顾尚学堂科技_王勇_JA V A视频教程_Spring01_源代码及重要说明尚学堂科技_王勇_JA V A视频教程_Spring02_Spring简介尚学堂科技_王勇_JA V A视频教程_Spring03_IoC容器尚学堂科技_王勇_JA V A视频教程_Spring04_属性注入尚学堂科技_王勇_JA V A视频教程_Spring05_Bean的作用域及自动装配尚学堂科技_王勇_JA V A视频教程_Spring06_代理模式及AOP术语尚学堂科技_王勇_JA V A视频教程_Spring07_Spring_AOP示例尚学堂科技_王勇_JA V A视频教程_Spring08_事务尚学堂科技_王勇_JA V A视频教程_Spring09_SSH集成尚学堂科技_王勇_JA V A视频教程_Spring10_作业及Spring回顾。
Java相关课程系列笔记之十五Spring学习笔记(建议用WPS打开)
Spring学习笔记Java相关课程系列笔记之十五笔记内容说明Spring(梁建全老师主讲,占笔记内容100%);目录一、 Spring概述 (1)Spring框架的作用 (1)Spring框架的优点 (1)Spring框架的容器 (1)二、 Spring容器的基本应用 (2)如何将一个Bean组件交给Spring容器 (2)如何获取Spring容器对象和Bean对象 (2)如何控制对象创建的模式 (2)Bean对象创建的时机 (2)为Bean对象执行初始化和销毁方法 (2)案例:Spring框架的使用以及节节整合测试 (3)三、 Spring框架IoC特性 (5)IoC概念 (5)DI概念 (5)案例:测试IoC(set注入) (5)案例:测试IoC(构造注入) (6)案例:不用JDBC访问数据库,而是采用Hibernate访问 (6)四、 Spring中各种类型的数据注入 (7)Bean对象注入 (7)基本数据的注入 (7)集合的注入 (7)案例:各类数据注入 (7)五、 AOP概念 (10)什么是AOP (10)AOP和OOP的区别 (10)AOP相关术语 (10)案例:AOP的使用,模拟某些组件需要记录日志的功能 (11)通知类型 (11)切入点 (12)案例:环绕通知,修改案例使之动态显示所执行的操作 (12)案例:利用AOP实现异常处理,将异常信息写入文件 (13)六、 Log4j日志记录工具 (14)Log4j介绍 (14)Log4j的使用 (14)案例:修改案例,使用Log4j记录日志 (14)七、 Spring注解配置 (16)组件扫描功能 (16)组件扫描的使用方法 (16)注入注解标记使用方法 (17)AOP注解标记使用方法 (17)八、 Spring对数据访问技术的支持 (19)Spring提供了统一的异常处理类型 (19)Spring提供了编写DAO的支持类 (19)Spring提供了声明式事务管理方法 (19)Spring框架如何使用JDBC技术 (19)连接池优点 (22)Spring框架如何使用Hibernate技术 (22)Spring+Hibernate如何使用Session、Query等对象 (25)Spring框架和Struts2整合应用 (25)案例:采用SSH结构重构资费管理模块 (27)九、整合开发包 (31)Struts2创建对象的方式 (31)创建对象的方式 (31)的内部实现 (31)原理图1 (31)原理图2 (32)注意事项 (32)注入规则 (32)十、 Spring的事务管理 (33)声明式事务管理(基于配置方式实现事务控制) (33)编程式事务管理(基于Java编程实现事务控制),不推荐用! (34)Spring中常用的事务类型 (34)十一、 Spring的MVC (35)Spring MVC的体系结构 (35)Spring MVC的工作流程 (35)案例:简易登录(基于XML配置,不推荐使用) (35)案例:修改案例(基于注解配置,推荐使用) (37)十二、其他注意事项 (39)Spring的核心模块 (39)表单中action属性的相对、绝对路径问题 (39)用SSH重构NetCTOSS项目模块的步骤 (39)一、Spring概述我们学习Spring框架的最终目的是用它整合Struts2、Hibernate框架(SSH)。
马士兵hibernate学习笔记(文字整理版)
马士兵hibernate学习笔记(文字整理版)课程容 (5)1 HelloWorld (5)2 Hibernate原理模拟 - 什么是O/R Mapping以及为什么要有O/R Mapping (5)3 常见的0/R框架(了解) (5)4 hibernate基础配置(重点) (5)5 ID生成策略(重点 AUTO) (5)6 Hibernate核心开发接口介绍(重点) (5)7 对象的三种状态(了解) (5)8 关系映射(重点) (5)9 Hibernate査询(HQL) (5)10 在Struts基础上继续完善BBS200 (5)11 性能优化(重点) (5)12 补充话题 (5)风格 (5)1 先脉络,后细节 (5)2 先操作,后原理 (5)3 重Annotation,轻xml配置文件 (5)资源 (5)1 . (5)2 hibernate zh_CN文档 (5)3 hibernate annotation references (5)环境准备 (5)1 下载hibernate-distribution-3.3.2.GA-dist (5)2 下载hibernate-annotations-3[1].4.0.GA (5)3 注意阅读hibernate compatibility matrix(hibernate download) (5)4 下载slf4jl.5.8 (6)Hibernate HelloWorld (6)1 建立新java 项目,名为hibernate_0100_HelloWorld (6)2 学习建User-library-hibernate,并加入相应的jar包 (6)3 引入mysql的JDBC驱动包 (6)4 在mysql中建立对应的数据库以及表 (6)5 建立hibernate 配置文件hibernate.cfg.xml (6)6 建立Student 类 (6)7 建立Student 映射文件 Student.hbm.xml (6)8 将映射文件加入到hibernate.cfg.xml中 (6)9 写测试类Main,在Main中对Student对象进行直接的存储测试 (6)10 FAQ: (6)11 Note: (6)12 建立能力 (7)建立 Annotation 版本的 HelloWorld (7)1 创建teacher 表,create table teacher (id int primary key, name varhcar(20), title varchar(lO)); (7)2 创建Teacher 类 (7)3 在hibernate lib 中加入annotation的jar包 (7)4 参考Annotaion文档建立对应的注解 (7)5 在hibernate.cfg.xml中建立映射<mapping class:.../〉 . (7)6 参考文裆进行测试(注意文裆中缺少configure()的小bug) (7)7 FAQ: 不给提示 (7)What is and Why 0/R Mapping (7)1 JDBC操作数据库很繁琐 (7)2 Sql语句编写并不是面向对象的 (7)3 可以在对象和关系表之间建立关联来简化编程 (7)4 0/R Mapping 简化编程 (7)5 0/R Mapping跨越数据库平台 (7)6 Hibernate_0200_OR_Mapping_Simulation (7)0/R Mapping Frameworks (7)1 hibernate (7)2 toplink (8)3 jdo (8)4 JPA (8)Hibernate基础配置 (8)1 对应项目:Hibernate_0300_BasicConfiguration (8)2 介绍MSQL的图形化客户端 (8)3 hibernate.cfg.xml: hbni2ddl.auto (8)4 搭建日志环境并配置显示DDL语句 (8)5 搭建jUnit环境 (8)6 hibernate.cfg.xml:show_sql (8)7 hibernate.cfg.xml:format_sql (8)8 表名和类名不同,对表名进行配置 (8)9 字段名和属性相同 (8)10 字段名和属性名不同 (8)11 不需要psersistence的字段(不用列) (8)12 映射日期与时间类型,指定时间精度 (8)13 映射枚举类型( 比较少用) (9)14 字段映射的位置(field或者get方法) (9)15 Lob (9)16 课外:CLOBBLOB类型的数据存取 (9)17 课外:Hibernate自定义数据类型 (9)18 hibernate 类型 (9)ID生成策略 (9)1 对应项目:hibernate_0400_ID (9)2 注意: (9)3 xml生成id (9)4 注解方式:GeneratedValue (9)5 FAQ; (10)6 联合主键 (10)核心幵发接口介绍 (12)1 hibernate_0500_CoreAPI (12)2 Hibernate API文档需要单独下载 (12)3 Configuration (12)4 SessoinFactor (12)5 Session (12)6 SchemaExport (自动建表) (13)7 Query 接口 (13)8 Note: (13)三种对象状态 (14)1 上一个 project (14)2 三种状态的区分关键在于 (14)3 三种状态: (14)4 对这三种状态需要关注的问题是在该状态下如果进行数据库的操作会发生什么结果,比如改变属性的 (14)关系映射(重要) (15)对象之间的关系 (15)1 这里的关系映射指的是对象之间的关系,并不是指数据库的关系,本章解决的问题是当对象之间处于 (15)2 简化问题: (15)3 —对一 (15)4 —对多 (15)5 组件映射 (15)一对一关联 (16)1 一对一单向外键关联 (16)2 一对一双向外键关联 (16)3 一对一单向主键关联(不重要) (17)4 一对一双向主键关联(不重要) (17)5 联合主键 (17)组件映射 (17)1 项目:hibernate_1100_component (17)2 对象关系:一个对象是另外一个对象的一部分 (17)3 数据库表:一表 (17)4 annotation: Embeddable Embbeded (17)5 xml: 使用<component,例如: (18)多对一与一对多 (18)1 多对一单向关联 (18)2 一对多单向关联 (19)3 一对多(多对一)双向关联 (19)多对多 (20)1 单向关联: (20)2 双向关联: (21)关联关系中的CRUD_Cascade_Fetch (21)1 hibernate_1700_one2many_many2one_bi_crud (21)2 设定cascade以设定在持久化时对于关联对象的操作(CUD,R归Fetch管) (21)3 cascade仅仅是帮我们省了编程的麻烦而已,不要把它的作用看的太大 (21)4 铁律:双向关系在程序中要设定双向关联 (22)5 铁律:双向mappedBy (22)6 fetch (22)7 Update时ManyToOne()中的cascade参数关系 (22)8 Delete时ManyToOne()中的cascade关系 (22)9 O/RMapping 编程模型 (23)10 要想删除或者更新先做load,除了精确知道ID之外 (23)11 如果想消除关联关系,先设定关系为null.再删除对应记录,如果不删记录,该记录变成垃圾数据 (23)12 练习:多对多的CRUD (23)关系映射总结 (24)1 什么样的关系,设计什么样的表,进行什么样的映射 (24)2 CRUD,按照自然的理解即可(动手测试) (24)集合映射(不太重要) (24)1 项目名称:hibernate_1800_Collections_Mapping (24)2 Set (24)3 List (与Set差不多多个OrderBy) (24)4 Map (24)继承映射(不太重要) (24)1 三种方式 (24)作业: (24)1 学生课程、分数的设计(重要) (24)2 设计: (25)3 树状结构的设计(至关重要) (25)Hibernate 查询(Query Language) (26)HQL vs EJBQL (26)1 NativeSQL >HQL.> EJBQL(JPQL 1.0) > QBC(Query By Criteria) > QBE(Query By Example)" 262 总结:QL应该和导航关系结合,共同为査询提供服务。
JAVA笔记(根据马士兵的java视频整理)
JAVA视频教程尚学堂---手把手教程Call:86-主讲教师马士兵SCM系统--------Java+VC跨平台(电信宽带运营平台-------Java+WEB(J2EE)跨平台远程教学平台----Java+WEB(tomcat)VOD视频监控-----VCERP视频会议---------VC新闻发布系统-----Java+XML(模板)网上商城课堂内容、教学方法、学习方法、预备知识、教学资源JAVA基础贯穿数据结构的知识(时间复杂度、链表)---非常重要语法基础【变量、循环、分支】最核心的东西—原理--学好OO【面向对象是最重要的】有新东西学是好事----个人价值Exception 从Java Web开始,框架巨多无比Array【数组】基础类、常用类I/O StreamCollection/Generic【集合类】Thread【线程】TCP/UDP【网络底层】GUI【Graphic User Interface 图形化用户接口窗口】Meta Data【以后讲,与紧密相关】Regular Expression【正规表达式】JDK初步Java Web编程【主攻一个框架---讲原理,略讲其他框架】针对Web程序J2EE【一套标准,包含Java Web 、JDPC、JSP、SP、JB/开源框架—就分步式来说,目前(2005)无东西与之抗衡】(比较,,)企业级应用J2ME移动设备移动增值SP运营商3G,2.5G,要火爆起来【网络先铺起来,应用才能上来;3G的网络还没有铺开、火爆起来,讲3G的应用超前了】巨无霸式的教学理论举例理论回顾练习讲解【三片面包加两片肉】注重结合工程实践【完全结合】注重传授自学能力【自学的东西相当重要,授人以鱼,不如授人以渔;慢慢学会掌握一定基础后才有,灌输、背,融成血液里的一部分,心中无剑,手中有剑—前提—心中有剑手中也有剑;时间短,强度大,该背就背】个人能力分三个层次知识学习前人的知识---学习能力的一个表现,被动地接受—接受能力{自己学习了知识后考虑如何去应用,去---学习解决问题的方法【类似问题遇到过】灵活运用学到的知识【碰到什么问题采用什么方法】解决问题的思路【最高层次】创造解决问题的方法【思路掌握了,遇到新问题,自己拓展一条思路,解决问题,不可能一口吃成一个胖子,沿着这三个层次一点一点往上升首先打造自己学习知识的能力,先把该掌握的知识掌握了,再谈如何应用---如何教---教大家写项目每一个知识教太深—给项目留得时间特别短---不合适;自学一些东西,慢慢去培养解决问题的思路,试着朝这个方向去培养,工作后慢慢遇到新问题使劲去思考了积累起来逐渐会有这个能力,灵活一点、再灵活一点!基础知识要背—灵活应用的东西不能背,无一定之规,在实践中慢慢锻炼—实践的越多—敲的代码越多(掌握思路后自主敲代码,哪怕敲不出来再看别人的思路—收获远远不一样,学习要自主一点,多思考思路才能开阔—无捷径,努力锻炼自己的就业能力。
尚学堂马士兵坦克大战视频教程笔记
目录
目录 ..................................................................................................................................................1 坦克大战视频教程 ..........................................................................................................................1
1. 项目需求.......................................................................................................................1 2. 学习方法.......................................................................................................................1 3. 做这个项目是为了,不是为了...................................................................................1 4. 项目的注意事项...........................................................................................................1 5. 版本 0.1:产生一个窗口.............................................................................................2 6. 版本 0.2:添加关闭窗口的事件处理.........................................................................2 7. 版本 0.3:画出代表坦克的实心圆.............................................................................3 8. 版本 0.4:让坦克动起来.............................................................................................4 9. 版本 0.41:使用双缓冲消除闪烁现象.......................................................................6 10. 版本 0.5:代码重构.....................................................................................................8 11. 版本 0.6:让坦克听众我们的指挥.............................................................................9 12. 版本 0.7—重要版本:将坦克单独包装成类 ...........................................................12 13. 版本 0.8:让主战坦克向 8 个方向行走(1).........................................................15 14. 版本 0.9:让主战坦克向 8 个方向行走(2).........................................................19 15. 版本 1.0:添加子弹类...............................................................................................20 16. 版本 1.1:根据主战坦克的方向和位置,打出子弹 ...............................................22 17. 版本 1.2:为了解决坦克停下也能打出炮弹的问题—画出炮筒 ...........................29 18. 版本 1.3:打出多发炮弹...........................................................................................33 19. 版本 1.4(Debug 的运用):解决炮弹不消亡的问题.................................................40 20. 版本 1.5:画一辆敌人的坦克...................................................................................51 21. 版本 1.6:将敌人坦克击毙.......................................................................................58 22. 版本 1.7:加入爆炸...................................................................................................61 23. 版本 1.8:添加多辆坦克...........................................................................................63 24. 版本 1.9:让敌军坦克更加智...................................................................................64 25. 版本 2.0:添加两堵墙...............................................................................................65 26. 版本 2.1:坦克不能互相穿越...................................................................................67 27. 版本 2.2:超级炮弹...................................................................................................68 28. 版本 2.3:主战坦克的生命值...................................................................................68 29. 版本 2.4:图形化表示主战坦克的生命值...............................................................69 30. 版本 2.5:添加“血块”...........................................................................................69 31. 版本 2.6:最后的修正(最终代码) ............................................................................71
尚学堂科技马士兵JAVA系列视频教程 全【VIP专享】
尚学堂科技.马士兵.JAVA.系列视频教程第一部分:J2se学习视频内容包括:尚学堂科技_马士兵_JAVA视频教程_JDK5.0_下载-安装-配置尚学堂科技_马士兵_JAVA视频教程_J2SE_5.0_第01章_JAVA简介_源代码_及重要说明尚学堂科技_马士兵_JAVA视频教程_J2SE_5.0_第02章_递归补充尚学堂科技_马士兵_JAVA视频教程_J2SE_5.0_第02章_基础语法尚学堂科技_马士兵_JAVA视频教程_J2SE_5.0_第03章_面向对象尚学堂科技_马士兵_JAVA视频教程_J2SE_5.0_第04章_异常处理尚学堂科技_马士兵_JAVA视频教程_J2SE_5.0_ 第05章_数组尚学堂科技_马士兵_JAVA视频教程_J2SE_5.0_第06章_常用类尚学堂科技_马士兵_JAVA视频教程_J2SE_5.0_第07章_容器尚学堂科技_马士兵_JAVA视频教程_J2SE_5.0_第08章_IO尚学堂科技_马士兵_JAVA视频教程_J2SE_5.0_第09章_线程尚学堂科技_马士兵_JAVA视频教程_J2SE_5.0_第10章_网络尚学堂科技_马士兵_JAVA视频教程_J2SE_5.0_第11章_GUI尚学堂科技_马士兵_JAVA 视频教程_J2SE_5.0_专题_日期处理尚学堂科技_马士兵_JAVA视频教程_J2SE_专题_正则表达式反射avi◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆最好的Java只有尚学堂最好的Java只有尚学堂最好的Java只有尚学堂最好的Java只有尚学堂最好的Java只有尚学堂◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆第二部分:j2se练习项目视频内容包括:尚学堂科技_马士兵_在线聊天系统雏形视频教程_java_eclipse尚学堂科技_马士兵_坦克大战视频教程_java_eclipse尚学堂科技_马士兵_坦克大战图片版尚学堂科技_马士兵_JAVA_坦克大战网络版视频教程尚学堂科技_马士兵_snake_贪吃蛇内部视频涉及到项目之1俄罗斯方块.rar: 07.4 MB涉及到项目之2坦克大战视频教程.rar: 019.4 MB涉及到项目之3坦克大战视频教程_java_eclipse.rar: 0395.4 MB涉及到项目之4坦克大战图片版.rar: 0101.2 MB涉及到项目之5坦克大战网络版视频教程.rar: 0248.8 MB涉及到项目之snake_贪吃蛇视频.rar: 095.2 MB涉及到项目之在线聊天系统雏形视频教程_java_eclipse.rar: 0233.9 MB◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆最好的Java只有尚学堂最好的Java只有尚学堂最好的Java只有尚学堂最好的Java只有尚学堂最好的Java只有尚学堂◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆第三部分数据库视频Oracle视频内容包括:01——53讲avi格式◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆最好的Java只有尚学堂最好的Java只有尚学堂最好的Java只有尚学堂最好的Java只有尚学堂最好的Java只有尚学堂◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆第四部分:JDBC和MySQL视频,内容包括:1_lomboz_eclipse_jdbc2_mysql_avi3_ 连接池的设计思路.avi◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆最好的Java只有尚学堂最好的Java只有尚学堂最好的Java只有尚学堂最好的Java只有尚学堂最好的Java只有尚学堂◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆第五部分:HTML & CSS & JAVASCRIPT 视频:Html & CSS 视频内容简介:01_html 简单介绍和meta标签.avi02_a_路径问题等等.avi03_学习方法_其他常用标签.avi04_1_note.avi04_ 表格和表单_1.avi05_表格和表单_2.avi06_Frame.avi07_Dreamweaver.avi08_CSS_1.avi09_CSS_2_ 选择方式.avi10_CSS_3.avi11_CSS_4.aviJavaScript 视频简介:01_JS 初步及调试.avi02_JS基本语法.avi03_函数_事件处理_1.avi04_事件处理_2.avi05_内置对象_DOM_BOM.avi06_趣味.avi07_实用.avi08_ 表单验证.avi09_表单验证_new.avi10_后台框架.avi11_后台框架_2.avi12_TREE.avi◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆最好的Java只有尚学堂最好的Java只有尚学堂最好的Java只有尚学堂最好的Java只有尚学堂最好的Java只有尚学堂◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆第六部分:Servlet & JSP视频——内容包括:1 tomcat的安装使用,配置2 servlet & jsp 视频1——30节jsp的练习项目内容包括:3 简单bbs项目3 2007美化BBS项目4 网上商城项目视频4 网上商城项目视频讲解视频◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆最好的Java只有尚学堂最好的Java只有尚学堂最好的Java只有尚学堂最好的Java只有尚学堂最好的Java只有尚学堂◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆第七部分:J2EE学习视频包括:DRP项目框架视频学习:Struts视频Hibernate视频Spring视频提高部分:uml统一建模语言视频SSH项目视频:oa办公自动化系统视频crm项目视频银行系统视频ejb3.0视频J2ME_3G简介资料面试材料:面试题大汇总+笔记+技巧。
马士兵视频列表及Java学习教学大纲
马士兵视频列表及Java学习教学大纲教学视频资源列表 q、 jshtmlcss 这是基础 l、尚学堂科技_马士兵_轻松开心 linux 视频教程 n、 oracle.马士兵 r、 mysql_avi.马士兵这些单独的数据库和系统模块可以在任何时候都可以,建议在学j2ee 之前学 j、尚学堂马士兵视频教程_scm_cvs_svn cvs 是存档工具,建议在学 j2ee 当中学习 p、 junit4 这个是测试工具,建议在学 j2ee 中学习 s、设计模式.马士兵 j2ee 中会提到这块的 f、马士兵jsp_servlet 视频这个是 j2ee 的基础 a、 ejb3.0 李腾飞 ejb 现在用的真的不多了 d、 struts 马士兵 b、 hibernate 马士兵 c、 spring 马士兵 struts 是学习 j2ee 的第一个框架,简洁易上手,也可以考虑struts2,这个跟 struts 没啥关系,是 webwork 的升级版 hibernate 对于懒人来说很好用,但是不适合面对大客户量的访问,那样机器会死的很惨 spring 还不错,就是要适应繁琐的配置文件 g、尚学堂科技_马士兵_java_网上商城项目视频讲解 h、尚学堂 09 年 drp 项目 i、尚学堂科技_马士兵_jdbc_mysql_bbs 项目课堂实录视频教程 k、尚学堂科技_马士兵_java_系列视频教程_bbs_2007 o、尚学堂马士兵视频教程_xml_ajax_dom4j_javadb_metadata 学完三大框架之后就可以做上面的项目了,然后 ajax 的学习也用不了太久,可以边学边学着做 e、 oa 项目最好是在有以上项目阅历的基础上,加上学完了 ajax 再做 oa 项目,因为 oa 项目涉及到的技术太多 m、网络课堂.尚学堂马士兵_flex_01 00_actionscript 这个跟上面的不是一个体系,建议当做扩展来学习第一部分:j2se 学习视频内容包括:尚学堂科技_马士兵_java 视频教程_jdk5.0_下载-安装-配置尚学堂科技_马士兵_java 视频教程_j2se_5.0_第 01 章_java 简介_源代码_及重要说明尚学堂科技_马士兵_java 视频教程_j2se_5.0_第 02 章_递归补充尚学堂科技_马士兵_java 视频教程_j2se_5.0_第 02 章_基础语法尚学堂科技_马士兵_java 视频教程_j2se_5.0_第 03 章_面对对象尚学堂科技_马士兵_java 视频教程_j2se_5.0_第 04 章_异样处理尚学堂科技_马士兵_java 视频教程_j2se_5.0_第 05 章_数组尚学堂科技_马士兵_java 视频教程_j2se_5.0_第 06 章_常用类尚学堂科技_马士兵_java 视频教程_j2se_5.0_第 07 章_容器尚学堂科技_马士兵_java 视频教程_j2se_5.0_第 08 章_io 尚学堂科技_马士兵_java 视频教程_j2se_5.0_第 09 章_线程尚学堂科技_马士兵_java 视频教程_j2se_5.0_第 1 0 章_网络尚学堂科技_马士兵_java 视频教程_j2se_5.0_第11 章_gui 尚学堂科技_马士兵_java 视频教程_j2se_5.0_专题_日期处理尚学堂科技_马士兵_java 视频教程_j2se_专题_正则反射 avi 其次部分:j2se 练习项目视频内容包括:尚学堂科技_马士兵_在线闲聊系统雏形视频教程_java_eclipse 尚学堂科技_马士兵_坦克大战视频教程_java_eclipse 尚学堂科技_马士兵_坦克大战图片版尚学堂科技_马士兵_java_坦克大战网络版视频教程尚学堂科技_马士兵_snake_贪吃蛇内部视频第三部分数据库视频 oracle 视频内容包括:01 53 讲 avi 格式第四部分:jdbc 和 mysql 视频,内容包括:1 _lomboz_eclipse_jdbc 2_mysql_avi 3_连接池的设计思路.avi 第五部分:html css js 视频:html css 视频内容简介:01 _html 简洁介绍和 meta 标签.avi 02_a_路径问题等等.avi 03_学习方法_其他常用标签.avi 04_1 _note.avi 04_表格和表单_1 .avi 05_表格和表单_2.avi 06_frame.avi 07_dreamweaver.avi 08_css_1 .avi 09_css_2_选择方式.avi 1 0_css_3.avi 11 _css_4.avi js 视频简介:01 _js 初步及调试.avi 02_js 基本语法.avi 03_函数_事务处理_1 .avi 04_事务处理_2.avi 05_内置对象_dom_bom.avi 06_趣味.avi 07_好用.avi 08_表单验证.avi 09_表单验证_new.avi 1 0_后台框架.avi 11 _后台框架_2.avi 1 2_tree.avi 第六部分:servlet jsp 视频内容包括:1 tomcat 的安装运用,配置2 servlet jsp 视频 1 30 节jsp 的练习项目内容包括:3 简洁 bbs 项目 3 2007 美化 bbs 项目4 网上商城项目视频 4 网上商城项目视频讲解视频第七部分:j2ee 学习视频包括:drp 项目框架视频学习:struts 视频 hibernate 视频 spring 视频提高部分:uml 统一建模语言视频 ssh 项目视频:oa 办公自动化系统视频 crm 项目视频银行系统视频 ejb3.0视频 j2me_3g 简介资料面试材料:面试题大汇总+笔记+技巧路途图明细下面给出其次节《java 自学路途图》中学问点的明细:一:j2se 面对对象-封装、继承、多态内存的分析递归集合类、泛型、自动打包与解包、 annotation io 多线程、线程同步 tcp/udp awt、事务模型、匿名类正则反射机制 2:数据库(oracle 或者 mysql) sql 语句多表连接,内外连接,子查询等管理表、视图、索引、序列、约束等树状结构存储存储过程、触发器数据库设计三范式、 3:jdbc jdbc 基础连接池树状结构存储与呈现datasource rowset jdbc 连接 oracle 及 mysql 4:html_css_js html、 css、 js 基础语法 js form 推断 dom 编程基础(事务处理等) js 常用效果如 treeview、下拉联动等 js 学习方法 js 调试方法 dreamweaver 初步(建立 html、 table、 form、css)等 5:servlet jsp tomcat 基础 servlet 基础 web.xml 配置基础web application 的结构 servlet 生命周期 request response 等常用方法servletcontext 类+css+js--------------------------- 3 days 5. --html+css+js--------------------------- 3 days 6. --bbs----------------------------------- 2 days 其次部分学习总周期 27 天 7. --drp-----------------------------------1 2 days 8.--struts--------------------------------- 6 days 9. --hibernate-------------------------------- 6 days 1 0.--spring--------------------------------- 3 days 第三部分学习总周期 26 天 11 .--uml----------------------------------- 2 days12.--oa-----------------------------------1 5 days13.--crm----------------------------------- 5 days 1 4.--ejb 3.0---------------------------------3 days 1 5.--bankproject(简介) ---------------------------1 days 1 6.--面试技巧+3g+j2me(简介) -------------------------1 days 第四部分 linux 学习总周期4 天。
java-hibernate笔记(讲义)-【尚学堂马士兵老师】
java-hibernate笔记(讲义)-【尚学堂马士兵老师】知识点终结:1 新建项目2 学习建立user-library-hibernate,并加入相应的jar包a项目右键-build path-configure build path-add libraryb选择user-library,在其中新建library,命命为hibernatec 在该library中加入hibernate所需要的jar包hibernate3.3.2/hibernate3.jar/lib/required目录下的所有包6个Sl4j-nop jar3 引入mysql的JDBC驱动包4 在MYSQL中建数据库和相应的表student(id,name,age)5 建立hibernate配置文件hibernate.cfg.xml参考文档中COPY,修改对应的数据库连接,6 建立student类7 建立映射文件Student.hbm.xml 参考相应文档8 将映射文件加到hibernate-cfg.xml中搭建日志环境并配置显示DDL语句slf的实现:slf4j nodep ,log4j ,jdk logging api ,apache common-log.slf4j.nop.jar是slf-api.jar其相应的接口实现把slf的接口对到log4j的实现,在user library中hibernate,把slf的实现slf4j-nop-1.5.8.jar去掉,添加log4j的实现log4j-1.2.15.jar,再添加一个slf-api和log4j转换器slf4j-log4j12-1.5.8.jar.把slf的接口转换成log4j的接口.最后添加一个log4j的配置文件log4j.properties利用HIBERNA TE导出数据库建表//读取配置文件hibernate.cfg.xmlConfiguration cfg=new AnnotationConfiguration().configure();(有注解时使用AnnotationConfiguration),configure()可以手动指定配置文件名称. Configuration cfg=new Configuration(),会默认读取hibernate.properties文件//创建schemaExport对象import org.hibernate.tool.hbm2ddl.SchemaExport;SchemaExport export=new SchemaExport(cfg);//创建数据库表export.create(true, true);对象映射(采用Annotation注解方式)1 建表Create table teacher(id int primary key,name varchar(20),title varchar(20));2 创建teacher类,并进行注解@import javax.persistence.Entity;import javax.persistence.Id;在bean中加注解@ Entity,@Id(加在getId()上面)3 在hibernate中加入annotation相应的jar包hibernate-annotations.jar/lib目录下加入相应的包ejb3-persistence.jar, hibernate-commons-annotations.jar注意:annotation文档中并没有提到hibernate-annotations.jar包4 参考annotation文档建立对应的注解5 在hibernate.cfg.xml中建立映射<mapping class=”com.xx.xx”/>6 示例//AnnotationConfiguration;Configuration cfg=new AnnotationConfiguration();SessionFactory sf=cfg.configure().buildSessionFactory();Session session=sf.openSession();session.beginTransaction();session.save(t);//session.getTransaction().commit();session.close();sf.close();对象映射(采用配置文件方式)1 在相应的类中建立对应的配置文件.例如Student类对应的配置文件Student.hbm.xml<hibernate-mapping package="com.model"><class name="Student" table=" Student" ><id name="id" column="id"></id><property name="name" column="name" /><property name="age" column="age" /></class></hibernate-mapping>2 在hibernate.cfg.xml中添加该映射文件Student.hbm.xml即可<!-- 建立对应的配置文件关联相应的数据库表 --><mapping resource="com/model/Student.hbm.xml"/>注意包名的写法3 示例//读取配置文件hibernate.cfg.xmlConfiguration cfg=new Configuration().configure();//创建SessionFactorySessionFactory sf=cfg.configure().buildSessionFactory();//创建sessionSession session=sf.openSession();session.beginTransaction();session.save(s);session.getTransaction().commit();session.close();sf.close();hibernate.cfg.xml配置hibernate.hbm2ddl.auto属性取值: validate | update | create | create-drop在sessionfactory创建时,自动检查数据结构,或者将数据库schema(表)的DDL导出到数据库,使用create-drop时,在显式关闭sessionfactory时,将drop掉数据库schema.validate 加载hibernate时,验证创建数据库表结构create 每次加载hibernate,重新创建数据库表结构create-drop 加载hibernate时创建,退出是删除表结构update 加载hibernate自动更新数据库结构表名和类名不同的情况时,对表名进行配置1 在注解中import javax.persistence.Table;@Table(name=”TableName”)2 在XML文件中<hibernate-mapping package="com.model"><class name="Teacher" table="Teacher" >配置对应的table属性为相应的表名<id name="id" column="id"></id>…</class></hibernate-mapping>字段名和属性名相同,默认为对于annotation,如果什么注解都不写的话,相当于加了注解@Basic实体bean中所有的非static非transient的属性都可以被持久化, 除非你将其注解为@Transient.所有没有定义注解的属性等价于在其上面添加了@Basic注解. 通过@Basic注解可以声明属性的获取策略(fetch strategy):对于XML文件中不用写column.字段名和属性名不同时Annotation:@column(name=”column_name”)加上相应的getXXX()方法上XML:column属性不需要persistence的字段import javax.persistence.Transient;@ Transient 意思是说这个属性是透明的,不进行持久化,存储的时候不存进去映射日期和时间类型,指定时间精度Annotation:import javax.persistence.Temporal;@Temporal(TemporalType.TIME)XML:指定type<class name="Teacher" table="Teacher" ><id name="id" column="id"></id><property name="name" type="time" />type=time或date</class>枚举类型的转换@Enumerated(EnumType.STRING)字段映射的位置推荐写在gexXXX方法上在程序中通过Hibernate 来保存java.sql.Clob 或者java.sql.Blob 实例时,必须包含两个步骤:1 在一个数据库事务中先保存一个空的Blob 或Clob 实例。
spring框架案例学习文档笔记
目录第一课:面向抽象编程 ....................................................................................... 3 第二课:Jdom 的基本使用 ..................................................................................... 3 第三课:模拟Spring 功能 .................................................................................... 4 第四课:搭建sping 的运行环境 . (7)一、 建立一个新的项目 ............................................................................. 7 二、 建立spring 的配置文件 ......................................................................... 7 三、 引入spring 的jar 包........................................................................... 7 四、 测试代码: ................................................................................... 7 五、 注意接口的使用: ............................................................................. 7 第五课:IOC(DI)配置及应用 . (8)一、 什么是IOC 、DI ................................................................................ 8 二、 编辑xml 文件时,没有提示 ...................................................................... 8 三、注入类型(Injecting dependencies) (8)(一) setter 注入类型Setter Injection .......................................................... 8 (二) 构造方法Constructor Injection (9)四、 id 、name .................................................................................... 10 五、 简单属性的注入 .............................................................................. 10 六、 Bean 的作用范围scope ......................................................................... 11 七、 集合注入 .................................................................................... 11 八、自动装配autowire (12)(一) byName .................................................................................. 12 (二) byType .................................................................................. 13 (三) 注意 .................................................................................... 13 九、生命周期 (14)(一) lazy-init/default-lazy-init ............................................................. 14 (二) init-method destroy-method 不要和prototype 一起用(了解) . (14)第六课:annotation 方式Spring (15)一、 开始使用annotation 配置Spring ............................................................... 15 二、@Autowired 、@Qualifier (15)(一) @Autowired .............................................................................. 15 (二) @Qualifier .............................................................................. 16 三、@Resource(重要、推荐) (16)(一) JSR-250 ................................................................................. 16 (二) @Resource . (16)四、 @Componet ................................................................................... 17 五、 @Scope 、@PostConstruct 、@PreDestroy .......................................................... 18 六、注解对应的jar 包 (18)第七课:AOP(面向切面编程) ..........................一、 AOP 概念 .............................二、 利用动态代理实现面向切面编程 19第八课:Spring AOP 配置选项 ........................一、 AOP 配置annotation 方式 ..............(一) 搭建annotation 开发环境 20(二)aspectJ 类库 .....................(三) AOP 的annotation 实例 ............(四)AspectJ 的专业术语 ...............Spring –SSH 整合 学习笔记---wjt276[2010-05-14](五) 织入点语法 (22)(六) Advice (23)(七) Pointcut (25)(八) annotatin方式的AOP实例 (25)二、AOP配置xml方式 (26)三、AOP实现动态代理注意 (27)第九课:DataSource (27)一、Sping配置数据源: (27)二、注入使用 (28)三、dbcp.BasicDataSource (28)第十课 Spring整合Hiberante3 (29)一、Spring配置hibernate3的SessionFactory (29)(一) xml形式的SessionFactory (29)(二) annotation注解方式的SessionFactory (29)二、引入hibernate所需要使用的jar (30)(一) 基本jar (30)(二) 加入annotation功能的jar包 (30)(三) 搭建日志环境并配置显示DDL语句jar包 (30)三、Spring整合hibernate3事务 (30)(一) Annotation注解方式配置事务管理 (30)(二) Spring事务选项 (34)(三) XML文件形式配置Spring事务管理 (36)四、HibernateTemplate (37)(一) HibernateTemplate (37)(二) HibernateDaoSupport (38)第十一课:Spring整合-SSH (39)一、第一步:加入jar包(需要的jar包列表) (39)二、第二步:首先整合Spring + Hibernate (40)三、第三步:再来整合Struts2 (40)四、struts的读常量: (42)第十二课:DTO、VO (42)一、DTO (42)二、VO (42)第十二课:SSH整合存在的问题 (42)一、Jsp中访问Session时,Session已经关闭 (42)二、如果不配置事务,openSessionView出现异常 (43)三、中文乱码问题: (43)第十三课:SSH整合的jar包 (44)一、Struts2 (44)二、Hibernate3.3.2 (44)三、Spring (45)第一课:面向抽象编程原来什么类都是写死的,现在是先建立一个大的标准,然后再各个实体类来实现他们的功能,然后在调用的时候,使用这个标准调用,这样,你们那个来都可以被调用。
马士兵云原生架构师笔记
马士兵云原生架构师笔记一、前言随着云计算和互联网技术的发展,云原生架构已成为企业数字化转型的重要方向。
作为一位有着丰富实践经验的架构师,马士兵深知云原生架构的重要性,并在此分享他的云原生架构师笔记,以帮助更多的人了解和掌握云原生架构。
二、云原生架构概述云原生架构是一种面向互联网的应用程序架构,它以容器化、微服务化和自动化为核心,旨在提高应用程序的可伸缩性、可靠性和灵活性。
云原生架构的优势在于能够快速应对业务变化,提高开发效率,降低运维成本。
三、笔记内容1.容器化技术:Docker、Kubernetes容器化技术是云原生架构的基础,它可以让应用程序以轻量级的方式进行部署和运行。
马士兵强调了Kubernetes的重要性,它是目前最流行的容器编排工具,能够帮助企业快速构建、部署和管理大规模的容器集群。
2.微服务架构:SpringCloud、AWSLambda微服务架构是一种将应用程序拆分为多个独立服务的架构模式,每个服务负责一项特定的功能。
马士兵介绍了SpringCloud生态系统,包括SpringBoot、SpringCloudConfig、SpringCloudNetflix等组件,以及AWSLambda等云服务。
3.自动化:CI/CD、DevOps自动化是云原生架构的重要组成部分,它可以帮助企业提高开发效率,降低运维成本。
马士兵强调了CI/CD(持续集成/持续交付)的重要性,以及DevOps(开发运维一体化)的理念,并分享了他的自动化实践经验。
4.安全性:身份认证、加密技术云原生架构面临着更多的安全挑战,如数据泄露、DDoS攻击等。
马士兵介绍了常见的身份认证技术和加密技术,如OAuth、JWT、TLS 等,并强调了安全性的重要性,以及企业在实施云原生架构时需要注意的安全问题。
5.云平台选择:AWS、Azure、GoogleCloud不同的云平台有各自的优势和特点,企业需要根据自己的需求选择合适的云平台。
尚学堂 马士兵 Java视频学习顺序
第一阶段:J2SE基础数据结构正则表达式反射机制第零部分:60分钟零基础体验项目开发第一部分:J2se学习视频内容包括:尚学堂科技_马士兵_JA V A视频教程_JDK5.0_下载-安装-配置尚学堂科技_马士兵_JA V A视频教程_J2SE_5.0_第01章_JA V A简介_源代码_及重要说明尚学堂科技_马士兵_JA V A视频教程_J2SE_5.0_第02章_递归补充尚学堂科技_马士兵_JA V A视频教程_J2SE_5.0_第02章_基础语法尚学堂科技_马士兵_JA V A视频教程_J2SE_5.0_第03章_面向对象尚学堂科技_马士兵_JA V A视频教程_J2SE_5.0_第04章_异常处理尚学堂科技_马士兵_JA V A视频教程_J2SE_5.0_第05章_数组尚学堂科技_马士兵_JA V A视频教程_J2SE_5.0_第06章_常用类尚学堂科技_马士兵_JA V A视频教程_J2SE_5.0_第07章_容器尚学堂科技_马士兵_JA V A视频教程_J2SE_5.0_第08章_IO尚学堂科技_马士兵_JA V A视频教程_J2SE_5.0_第09章_线程尚学堂科技_马士兵_JA V A视频教程_J2SE_5.0_第10章_网络尚学堂科技_马士兵_JA V A视频教程_J2SE_5.0_第11章_GUI尚学堂科技_马士兵_JA V A视频教程_J2SE_5.0_专题_日期处理尚学堂科技_马士兵_JA V A视频教程_J2SE_专题_正则表达式尚学堂科技_马士兵_JA V A视频教程_J2SE_专题_递归尚学堂科技_马士兵_JA V A视频教程_J2SE_专题_CLASSPA TH第二部分:j2se练习项目视频内容包括:尚学堂科技_马士兵_在线聊天系统雏形视频教程_java_eclipse尚学堂科技_马士兵_坦克大战视频教程_java_eclipse尚学堂科技_马士兵_坦克大战图片版尚学堂科技_马士兵_JA V A_坦克大战网络版视频教程尚学堂科技_马士兵_snake_贪吃蛇内部视频补充知识:设计模式(一部分) ,Java Annotation,Java 反射,专题_日期处理,专题_正则表达式,另外建议补充数据结构的知识。
《Spring实战 第6版 》读书笔记思维导图PPT模板下载
06
小结
05
5.5 了 解用户是 谁
6.1 细粒度地调 整自动配置
6.2 创建自己的 配置属性
6.3 使用 profile进行配 置
小结
第2部分 Spring集成
第7章 创建REST 服务
第8章 保护REST
第9章 发送异步 消息
第10章 Spring 集成
7.1 编写 RESTful控制器
7.2 启用数据后 端服务
7.3 消费REST服 务
小结
1
8.1 OAuth 2简介
2
8.2 创建授 权服务器
3 8.3 使用资
源服务器保护 API
4 8.4 开发客
户端
5
小结
9.1 使用JMS发 送消息
9.2 使用 RabbitMQ和AMQP
9.3 使用Kafka 的消息
小结
10.1 声明一个简 单的集成流
13.3 反应式地持 久化Cassandr...
小结
14.1 RSocket概 览
14.2 创建简单的 RSocket服务 器...
14.3 通过 WebSocket传输 RS...
小结
第4部分 部署Spring
第15章 使用 Spring Boot
A...
第16章 管理 Spring
第17章 使用JMX 监控Spring
最新版读书笔记,下载可以直接修改
《Spring实战 第6 版》
思维导图PPT模板
本书关键字分析思维导图
第章
领域
控制器 库
概览
资源
项目
Spring
数据
服务器 持久化
添加
小结
Spring课堂笔记
Spring部分学习笔记讲师:梁建全liangjq@目录Spring部分学习笔记 (1)DAY01 (5)一、Spring框架的作用和好处 (5)二、Spring框架对Bean组件的管理 (5)1、使用方法: (5)2、Spring容器对Bean组件的管理 (5)3、Spring框架的IoC机制 (6)A.DI (依赖注入) (6)B.各种类型数据的注入 (7)C.IoC(Inverse of Controller,控制反转) (9)三、AOP概念 (9)1、什么是AOP? (9)2、AOP基本应用 (9)A.引入AOP开发包 (9)B.定义一个Bean组件(方面组件),封装共通处理 (9)C.在applicationContext.xml中定义AOP配置 (9)3、AOP相关概念 (10)4、通知类型 (10)5、切入点表达式 (11)6、AOP练习完成记录用户操作日志示例。
(11)7、编写一个AOP示例,异常处理方面 (13)DAY02 (14)一、Log4j工具介绍 (14)1、体系结构 (14)2、消息级别 (14)二、Spring注解配置 (15)1、组件的自动扫描 (15)2、AOP注解标记 (15)3、(异常处理)案例重构 (15)4、XML和注解两种配置形式 (16)DAY03 (17)一、Spring对数据访问层的支持 (17)1、提供了事务管理 (17)2、提供了DAO实现支持 (17)3、如何整合JDBC技术 (17)4、如何整合Hibernate技术 (19)5、Spring整合Hibernate后,如何使用Hibernate中的Session对象 (21)二、Spring如何与Struts2框架整合 (22)1、添加Struts2框架 (22)2、编写Action,需要使用DAO组件采用DI方式注入 (22)3、Spring容器中定义Action组件,注入DAO (22)4、在struts.xml中定义Action组件和请求配置 (22)5、在web.xml中添加配置,在启动tomcat时,实例化Spring容器 (23)DAY04 (24)一、Spring与Struts2、Hibernate 整合 (24)1、SSH工作流程 (24)二、ssh开发步骤 (25)1、引入开发包 (25)2、编写实体类和映射文件hbm.xml(可以利用MyEclipse工具) (25)3、编写DAO组件 (26)4、在Spring配置文件中定义DAO,SessionFactory,DataSource按以下关系注入 (26)5、添加Struts2配置文件及控制器配置 (27)6、编写Action组件,需要使用Service或DAO时,采用名称匹配规则注入 (27)7、在struts.xml中添加Action组件配置(代码在5、中) (27)8、修改jsp,利用struts2标签完成显示 (27)9、修改web.xml,添加Listener配置,实例化Spring容器 (27)10、按ssh-2图示检查一下流程。
Spring学习笔记(马士兵spring视频笔记)
课程内容1.面向接口(抽象)编程的概念与好处2.IOC/DI的概念与好处a)inversion of controlb)dependency injection3.AOP的概念与好处4.Spring简介5.Spring应用IOC/DI(重要)a)xmlb)annotation6.Spring应用AOP(重要)a)xmlb)annotation7.Struts2.1.6 + Spring2.5.6 + Hibernate3.3.2整合(重要)a)opensessionInviewfilter(记住,解决什么问题,怎么解决)8.Spring JDBC面向接口编程(面向抽象编程)1.场景:用户添加2.Spring_0100_AbstractOrientedProgramminga)不是AOP:Aspect Oriented Programming3.好处:灵活什么是IOC(DI),有什么好处1.把自己new的东西改为由容器提供a)初始化具体值b)装配2.好处:灵活装配Spring简介1.项目名称:Spring_0200_IOC_Introduction2.环境搭建a)只用IOCi.spring.jar , jarkata-commons/commons-loggin.jar3.IOC容器a)实例化具体beanb)动态装配4.AOP支持a)安全检查b)管理transactionSpring IOC配置与应用1.FAQ:不给提示:a)window – preferences – myeclipse – xml – xml catalogb)User Specified Entries – addi.Location: D:\share\0900_Spring\soft\spring-framework-2.5.6\dist\resources\spring-beans-2.5.xsdii.URI:file:///D:/share/0900_Spring/soft/spring-framework-2.5.6/dist/resources/spring-beans-2.5.xsd iii.Key Type: Schema Locationiv.Key: /schema/beans/spring-beans-2.5.xsd2.注入类型a)Spring_0300_IOC_Injection_Typeb)setter(重要)c)构造方法(可以忘记)d)接口注入(可以忘记)3.id vs. namea)Spring_0400_IOC_Id_Nameb)name可以用特殊字符4.简单属性的注入a)Spring_0500_IOC_SimplePropertyb)<property name=… value=….>5.<bean 中的scope属性a)Spring_0600_IOC_Bean_Scopeb)singleton 单例c)proptotype 每次创建新的对象6.集合注入a)Spring_0700_IOC_Collectionsb)很少用,不重要!参考程序7.自动装配a)Spring_0800_IOC_AutoWireb)byNamec)byTyped)如果所有的bean都用同一种,可以使用beans的属性:default-autowire8.生命周期a)Spring_0900_IOC_Life_Cycleb)lazy-init (不重要)c)init-method destroy-methd 不要和prototype一起用(了解)9.Annotation第一步:a)修改xml文件,参考文档<context:annotation-config />10.@Autowireda)默认按类型by typeb)如果想用byName,使用@Qulifierc)写在private field(第三种注入形式)(不建议,破坏封装)d)如果写在set上,@qualifier需要写在参数上11.@Resource(重要)a)加入:j2ee/common-annotations.jarb)默认按名称,名称找不到,按类型c)可以指定特定名称d)推荐使用e)不足:如果没有源码,就无法运用annotation,只能使用xml12.@Component @Service @Controller @Repositorya)初始化的名字默认为类名首字母小写b)可以指定初始化bean的名字13.@Scope14.@PostConstruct = init-method; @PreDestroy = destroy-method; 什么是AOP1.面向切面编程Aspect-Oriented-Programminga)是对面向对象的思维方式的有力补充2.Spring_1400_AOP_Introduction3.好处:可以动态的添加和删除在切面上的逻辑而不影响原来的执行代码a)Filterb)Struts2的interceptor4.概念:a)JoinPoint 释意:切面与原方法交接点即切入点b)PointCut 释意:切入点集合c)Aspect(切面)释意:可理解为代理类前说明d)Advice 释意:可理解为代理方法前说明例如@Beforee)Target 释意:被代理对象被织入对象f)Weave 释意:织入Spring AOP配置与应用1.两种方式:a)使用Annotationb)使用xml2.Annotationa)加上对应的xsd文件spring-aop.xsdb)beans.xml <aop:aspectj-autoproxy />c)此时就可以解析对应的Annotation了d)建立我们的拦截类e)用@Aspect注解这个类f)建立处理方法g)用@Before来注解方法h)写明白切入点(execution …….)i)让spring对我们的拦截器类进行管理@Component3.常见的Annotation:a)@Pointcut 切入点声明以供其他方法使用, 例子如下:@Aspect@Componentpublic class LogInterceptor {@Pointcut("execution(public * com.bjsxt.dao..*.*(..))")public void myMethod(){}@Around("myMethod()")public void before(ProceedingJoinPoint pjp) throws Throwable{System.out.println("method before");pjp.proceed();}@AfterReturning("myMethod()")public void afterReturning() throws Throwable{System.out.println("method afterReturning");}@After("myMethod()")public void afterFinily() throws Throwable{System.out.println("method end");}}b)@Before 发放执行之前织入c)@AfterReturning 方法正常执行完返回之后织入(无异常)d)@AfterThrowing 方法抛出异常后织入e)@After 类似异常的finallyf)@Around 环绕类似filter , 如需继续往下执行则需要像filter中执行FilterChain.doFilter(..)对象一样执行ProceedingJoinPoint.proceed()方可,例子如下:@Around("execution(* com.bjsxt.dao..*.*(..))")public void before(ProceedingJoinPoint pjp) throws Throwable{System.out.println("method start");pjp.proceed();//类似FilterChain.doFilter(..)告诉jvm继续向下执行}4.织入点语法a)void !voidb)参考文档(* ..)如果execution(* com.bjsxt.dao..*.*(..))中声明的方法不是接口实现则无法使用AOP实现动态代理,此时可引入包” cglib-nodep-2.1_3.jar”后有spring自动将普通类在jvm中编译为接口实现类,从而打到可正常使用AOP的目的.5.xml配置AOPa)把interceptor对象初始化b)<aop:configi.<aop:aspect …..1.<aop:pointcut2.<aop:before例子:<bean id="logInterceptor" class="com.bjsxt.aop.LogInterceptor"></bean><aop:config><!-- 配置一个切面 --><aop:aspect id="point" ref="logInterceptor"><!-- 配置切入点,指定切入点表达式 --><!-- 此句也可放到 aop:aspect标签外依然有效--><aop:pointcutexpression="execution(public * com.bjsxt.service..*.*(..))"id="myMethod" /><!-- 应用前置通知 --><aop:before method="before" pointcut-ref="myMethod" /><!-- 应用环绕通知需指定向下进行 --><aop:around method="around" pointcut-ref="myMethod" /><!-- 应用后通知 --><aop:after-returning method="afterReturning"pointcut-ref="myMethod" /><!-- 应用抛出异常后通知 --><aop:after-throwing method="afterThrowing"pointcut-ref="myMethod" /><!-- 应用最终通知 --><aop:after method="afterFinily"pointcut="execution(public * om.bjsxt.service..*.*(..))" /></aop:aspect></aop:config>Spring整合Hibernate1.Spring 指定datasourcea)参考文档,找dbcp.BasicDataSourcei.c3p0ii.dbcpiii.proxoolb)在DAO或者Service中注入dataSourcec)在Spring中可以使用PropertyPlaceHolderConfigure来读取Properties文件的内容2.Spring整合Hibernatea)<bean .. AnnotationSessionFactoryBean>i.<property dataSourceii.<annotatedClassesb)引入hibernate 系列jar包c)User上加Annotationd)UserDAO或者UserServie 注入SessionFactorye)jar包问题一个一个解决3.声明式的事务管理a)事务加在DAO层还是Service层?b)annotationi.加入annotation.xsdii.加入txManager beaniii.<tx:annotation-driven例如: <bean id="transactionManager"class="org.springframework.orm.hibernate3.HibernateTransactionManager"><property name="sessionFactory"><ref bean="sessionFactory" /></property></bean><tx:annotation-driven transaction-manager="transactionManager"/> iv.在需要事务的方法上加:@Transactionalv.需要注意,Hibernate获得session时要使用SessionFactory.getCurrentSession 不能使用OpenSessionc)@Transactional详解i.什么时候rollback1.运行期异常,非运行期异常不会触发rollback2.必须uncheck (没有catch)3.不管什么异常,只要你catch了,spring就会放弃管理4.事务传播特性:propagation_required例如: @Transactional(propagation=Propagation.REQUIRED)等同于(@Transactional)作用,一个方法声明了@Transactional事务后,其内再调用的方法不需要再声明@Transactional.5.read_only例如: @Transactional(propagation=Propagation.REQUIRED,readOnly=true)当方法声明readOnly=true时,该方法及其调用的方法内都不执行insert update等d)xml(推荐,可以同时配置好多方法)i.<bean txmanagerii.<aop:config1.<aop:pointcut2.<aop:advisor pointcut-ref advice-refiii.<tx:advice: id transaction-manager =iv.<property name="packagesToScan"> 可定义扫描目标包下所有实体类例如: <bean id="sessionFactory"class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean"><property name="dataSource" ref="dataSource" /><property name="hibernateProperties"><props><prop key="hibernate.dialect">org.hibernate.dialect.OracleDialect</prop> <prop key="hibernate.show_sql">true</prop></props></property><!--<property name="annotatedClasses"><list><value>com.bjsxt.model.TestUser</value><value>com.bjsxt.model.Log</value></list></property>--><!-- 将参数名称设为packagesToScan 可定义扫描目标包下所有实体类--><property name="packagesToScan"><list><value>com.bjsxt.model</value></list></property></bean>//事务管理@transactional的注入<bean id="transactionManager"class="org.springframework.orm.hibernate3.HibernateTransactionManager"> <property name="sessionFactory"><ref bean="sessionFactory" /></property></bean>//定义字符串“execution()”为一个变量名,简化<aop:config><aop:pointcutexpression="execution(public * com.bjsxt.service..*.*(..))"id="myServiceMethod" /><aop:advisor pointcut-ref="myServiceMethod" advice-ref="txAdvice"/></aop:config><tx:advice id="txAdvice" transaction-manager="transactionManager"> <tx:attributes><tx:method name="save*" propagation="REQUIRED" /><tx:method name="add*" propagation="REQUIRED" /><tx:method name="update*" propagation="REQUIRED" /><tx:method name="del*" propagation="REQUIRED" /><tx:method name="cancel*" propagation="REQUIRED" /><tx:method name="*" read-only="true" /></tx:attributes></tx:advice>e)HibernateTemplate、HibernateCallback、HibernateDaoSupport(不重要)介绍i.设计模式:Template Method(模板方法)ii.Callback:回调/钩子函数iii.第一种:(建议)1.在spring中初始化HibernateTemplate,注入sessionFactory<bean id="hibernateTemplate"class="org.springframework.orm.hibernate3.HibernateTemplate"><property name="sessionFactory" ref="sessionFactory" /></bean>2.DAO里注入HibernateTemplateprivate HibernateTemplate hibernateTemplate;@Resourcepublic void setHibernateTemplate(HibernateTemplate hibernateTemplate) { this.hibernateTemplate = hibernateTemplate;}3.save写getHibernateTemplate.save();public void save(TestUser testUser) {hibernateTemplate.save(testUser);}iv.第二种:1.从HibernateDaoSupport继承(此方法不好用可忽略)2.必须写在xml文件中,无法使用Annotation,因为set方法在父类中,而且是final的例如:首先,新建SuperDAOImpl类(使用Annotation注入--@Component):@Componentpublic class SuperDAOImpl {private HibernateTemplate hibernateTemplate; //此处定义由spring注入管理public HibernateTemplate getHibernateTemplate() {return hibernateTemplate;}@Resourcepublic void setHibernateTemplate(HibernateTemplate hibernateTemplate) { this.hibernateTemplate = hibernateTemplate;}}此时,xml中必须要有:<bean id="hibernateTemplate"class="org.springframework.orm.hibernate3.HibernateTemplate"><property name="sessionFactory" ref="sessionFactory" /></bean>或者,SuperDAOImpl类写成下面代码:@Componentpublic class SuperDAOImpl extends HibernateDaoSupport {@Resource(name="sessionFactory")public void setSuperHibernateTemplate(SessionFactory sessionFactory) {super.setSessionFactory(sessionFactory);}}对应的xml中则可省略<bean id="hibernateTemplate"………部分只要包含<bean id="sessionFactory"……..部分即可最后,其他类继承SuperDaoImpl类后便可直接使用HibernateTemplate@Component("u")public class UserDAOImpl extends SuperDAOImpl implements UserDAO {public void save(TestUser testUser) {this.getHibernateTemplate().save(testUser);}}f)spring整合hibernate的时候使用packagesToScan属性,可以让spring自动扫描对应包下面的实体类Struts2.1.6 + Spring2.5.6 + Hibernate3.3.2a)将这些所有的jar包保存到一个位置,使用的时候直接copy3.步骤a)加入jar包b)首先整合Spring + Hibernatei.建立对应的package1.dao / dao.impl / model / service / service.impl/ testii.建立对应的接口与类框架1.S2SH_01iii.建立spring的配置文件(建议自己保留一份经常使用的配置文件,以后用到的时候直接copy改)iv.建立数据库v.加入Hibernate注解1.在实体类上加相应注解@Entity @Id等在字段属性的get方法上加--@Column(name = "表字段名")2.在beans配置文件配置对应的实体类,使之受管vi.写dao service的实现vii.加入Spring注解1.在对应Service及DAO实现中加入@Component,让spring对其初始化2.在Service上加入@Transactional或者使用xml方式(此处建议后者,因为更简单)3.在DAO中注入sessionFactory4.在Service中注入DAO5.写DAO与Service的实现viii.写测试c)整合Struts2i.结合点:Struts2的Action由Spring产生ii.步骤:1.修改web.xml加入struts的filter如下:<filter><filter-name>struts2</filter-name><filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter </filter-class></filter><filter-mapping><filter-name>struts2</filter-name><url-pattern>/*</url-pattern></filter-mapping>2.再加入spring的listener,这样的话,webapp一旦启动,spring容器就初始化了如下:<!-- 指定由spring初始化加载xml配置文件spring与struts结合必备--><listener><listener-class>org.springframework.web.context.ContextLoaderListener<!-- 默认寻找xml路径:WEB-INF/applicationContext.xml --> </listener-class></listener><!--整个应用的参数服务启动时读取.可指定spring初始化文件路径位置--><context-param><param-name>contextConfigLocation</param-name><param-value>classpath*:spring/*applicationContext.xml</param-value></context-param>3.规划struts的action和jsp展现4.加入struts.xmla)修改配置,由spring替代struts产生Action对象5.修改action配置a)把类名改为bean对象的名称,这个时候就可以使用首字母小写了b)@Scope(―prototype‖)不要忘记iii.struts的读常量:1.struts-default.xml2.struts-plugin.xml3.struts.xml4.struts.properties5.web.xmliv.中文问题:1.Struts2.1.8已经修正,只需要改i18n.encoding = gbk2.使用spring的characterencoding例:<!-- 过滤器相关配置======== 字符编码过滤======== --><filter><filter-name>CharacterEncodingFilter</filter-name><filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class><init-param><param-name>encoding</param-name><param-value>UTF-8</param-value></init-param><init-param><param-name>forceEncoding</param-name><param-value>true</param-value></init-param></filter>3.需要严格注意filter的顺序4.需要加到Struts2的filter前面zyInitializationException1.OpenSessionInViewFilter2.需要严格顺序问题3.需要加到struts2的filter前面附:1.@Autowired 与@Resource 都可以用来装配bean. 都可以写在属性定义上,或写在set方法上@Autowired (srping提供的) 默认按类型装配@Resource ( j2ee提供的) 默认按名称装配,当找不到(不写name属性)名称匹配的bean再按类型装配. 可以通过@Resource(name="beanName") 指定被注入的bean的名称, 要是指定了name属性, 就用字段名去做name属性值,一般不用写name属性.@Resource(name="beanName")指定了name属性,按名称注入但没找到bean, 就不会再按类型装配了.@Autowired 与@Resource可作用在属性定义上, 就不用写set方法了(此方法不提倡);2.a.Action类前加@Component,则Action可由spring来管理,例子如下:Action中写:@Component("u") //spring管理注解@Scope("prototype") //多态public class UserAction extends ActionSupport implements ModelDriven{//内部属性需要有get/set方法且需要set方法前加@Resource或@Autowired }Struts2配置文件中写<action name="u" class="u">Jsp中<form method="post" action="u.do" >b.Action中也可不加@Component,Action由struts2-spring-plugin管理。
马士兵mysql视频的个人笔记
如果你的root现在有密码了,那么修改密码为abc的命令是:mysqladmin -u root -p password youyou 注意,命令回车后会问你旧密码,输入旧密码之后命令完成,密码修改成功。
---------02_mysql_startedcreate database mydata; //创建一个数据库use mydata; //使用当前已经创建的数据库create table dept //创建dept表(deptno int primary key,dname varchar(14),loc varchar(13)--部门位置);create table emp(empno int primary key,ename varchar(10),job varchar(10),mgr int,--所属经理编号hiredate datetime,--入职日期sal double,comm double,--奖金deptno int,foreign key (deptno) references dept(deptno) #外键deptno参考dept表的deptno);?:显示帮助信息\. 执行一个SQL的脚本文件,用一个文件名作为参数例如\. c:\\mysql_script\\mydata.sqlcreate table salgrade #创建薪水等级表salgrade(grade int primary key,losal int,hisal int);insert into dept values(10,'a','a');insert into dept values(20,'b','b');insert into dept values(30,'c','c');insert into dept values(40,'d','d');insert into dept(deptno,dname) values(50,'e');insert into dept values(60,'f','f');---------03_page_seperationshow databases; #查看当前MYSQL环境下有多少个数据库show tables; #查看当前使用中数据库下面有多少张表。
Spring学习笔记
Spring学习笔记Java相关课程系列笔记之十五笔记内容说明Spring(梁建全老师主讲,占笔记内容100%);目录一、Spring概述 (1)1.1 Spring框架的作用 (1)1.2 Spring框架的优点 (1)1.3 Spring框架的容器 (1)二、Spring容器的基本应用 (2)2.1如何将一个Bean组件交给Spring容器 (2)2.2如何获取Spring容器对象和Bean对象 (2)2.3如何控制对象创建的模式 (2)2.4 Bean对象创建的时机 (2)2.5为Bean对象执行初始化和销毁方法 (2)2.6案例:Spring框架的使用以及 2.1节-2.5节整合测试 (3)三、Spring框架IoC特性 (5)3.1 IoC概念 (5)3.2 DI概念 (5)3.3案例:测试IoC(set注入) (5)3.4案例:测试IoC(构造注入) (6)3.5案例:不用JDBC访问数据库,而是采用Hibernate访问 (6)四、Spring中各种类型的数据注入 (7)4.1 Bean对象注入 (7)4.2基本数据的注入 (7)4.3集合的注入 (7)4.4案例:各类数据注入 (7)五、AOP概念 (10)5.1什么是AOP (10)5.2 AOP和OOP的区别 (10)5.3 AOP相关术语 (10)5.4案例:AOP的使用,模拟某些组件需要记录日志的功能 (11)5.5通知类型 (11)5.6切入点 (12)5.7案例:环绕通知,修改 5.4案例使之动态显示所执行的操作 (12)5.8案例:利用AOP实现异常处理,将异常信息写入文件 (13)六、Log4j日志记录工具 (14)6.1 Log4j介绍 (14)6.2 Log4j的使用 (14)6.3案例:修改 5.8案例,使用Log4j记录日志 (15)七、Spring注解配置 (16)7.1组件扫描功能 (16)7.2组件扫描的使用方法 (16)7.3注入注解标记使用方法 (17)7.4 AOP注解标记使用方法 (17)八、Spring对数据访问技术的支持 (19)8.1 Spring提供了统一的异常处理类型 (19)8.2 Spring提供了编写DAO的支持类 (19)8.3 Spring提供了声明式事务管理方法 (19)8.4 Spring框架如何使用JDBC技术 (19)8.5连接池优点 (22)8.6 Spring框架如何使用Hibernate技术 (22)8.7 Spring+Hibernate如何使用Session、Query等对象 (25)8.8 Spring框架和Struts2整合应用 (25)8.9案例:采用SSH结构重构资费管理模块 (27)九、整合开发包 struts-spring-plugin.jar (32)9.1 Struts2创建对象的方式 (32)9.2 struts-spring-pligin.jar创建对象的方式 (32)9.3 struts-spring-plugin.jar的内部实现 (32)9.4原理图 1 (32)9.5原理图 2 (33)9.6注意事项 (33)9.7注入规则 (33)十、Spring的事务管理 (34)10.1声明式事务管理(基于配置方式实现事务控制) (34)10.2编程式事务管理(基于Java编程实现事务控制),不推荐用! (35)10.3 Spring中常用的事务类型 (35)十一、Spring的MVC (37)11.1 Spring MVC的体系结构 (37)11.2 Spring MVC的工作流程 (37)11.3案例:简易登录(基于XML配置,不推荐使用) (37)11.4案例:修改11.3案例(基于注解配置,推荐使用) (39)十二、其他注意事项 (41)12.1 Spring的核心模块 (41)12.2表单中action属性的相对、绝对路径问题 (41)12.3用SSH重构NetCTOSS项目模块的步骤 (41)一、Spring概述我们学习Spring框架的最终目的是用它整合Struts2、Hibernate框架(SSH)。
马士兵视频观看顺序【VIP专享】
◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆针对很多java爱好者对尚学堂课程不是十分了解,特此介绍课程学习内容及学习周期:第一部分学习总周期26天:1. ---j2se(chat + Tank + snake)---------------------------------------------13 days2. ---Oracle------------------------------------------------------------------ 4 days3. ---JDBC+Mysql-------------------------------------------------------------- 1 days4. ---Html+css+javascript----------------------------------------------------- 3 days5. ---Html+css+javascript----------------------------------------------------- 3 days6. ---BBS--------------------------------------------------------------------- 2 days第二部分学习总周期27天7. ---DRP---------------------------------------------------------------------12 days8. ---Struts------------------------------------------------------------------ 6 days9. ---Hibernate--------------------------------------------------------------- 6 days10.---Spring------------------------------------------------------------------ 3 days第三部分学习总周期26天11.---UML--------------------------------------------------------------------- 2 days12.---OA----------------------------------------------------------------------15 days13.---CRM--------------------------------------------------------------------- 5 days14.---EJB 3.0------------------------------------------------------------------3 days15.---BankProject(简介)------------------------------------------------------1 days16.---面试技巧+3G+j2me(简介)-------------------------------------------------1 days第四部分Linux学习总周期4天课堂资料介绍(您的资料缺少什么,请对照)00_开课java开门三件事.txt01_J2SEchapter1(代码)chapter2(代码)chapter3(代码)……chapter11(代码)java(代码)ppt理解抽象类与接口的区别.htm02_Oracle面试题BBS设计.txtOracle9i - 10g卸载与安装.docOracle9i卸载与安装.docoracle_chapter_5.sqlOracleDBA操作.txtOracle表连接与子查询示例.txtOracle总结.txtShopping.sql使用sqlplus连接别人的oracle.txt习题.txt03_JDBC_MySQLMySQL.doc04_HTML_CSS_JAVASCRIPTCSSHTMLHTML_CSS_JAVASCRIPTJavaScript[Java Script] Wrox Press - JavaScript Programmer's Reference.pdf [John Wiley & Sons] JavaScript.Examples.Bible [2007].pdfDHTML 手册.chmJavaScript 2005- Wrox - Professional Javascript For Web Develope.pdf javascript.exeJavaScript_yufashouce.pdf05_Servlet&JSPSERVLET&JSP.01.mht06_DRPcvs_installdemohttplookjfreechartsqltomcat管理界面uploadweb servicesxml验证码DRP培训日志-.docDRP项目(图片).pptnote.txtProject1.exe这个项目.txt07_StrutsBeanUtilsjstl_installstrutsstruts_installstruts项目代码行数统计工具作业beanutils-1.5-src.zipJSTL详解.rarManning,.POJOs.in.Action.(2005).BBL.LotB.pdfStrutsMVC框架图.docstruts流程.png08_Hibernatehibernate-3.2.0.gahibernate项目zh-cn数据库操作.txt09_Springspring2.0-reference_final_zh_cn.chmspring2.0-reference_final_zh_cn.pdfspring-reference.pdfspring-framework-2.0-with-dependencies.zip09_UML[020*******]Analysis Patterns Reusable Object Models.pdf [Rational.Rose.2003.Crack.Keygen].Rational.Rose.2003.Crack.Keygen.zip Addison.Wesley - UML.Distilled.A.Brief.Guide.3rd.Edition.eBook-LiB.chm Rational Rose 2003.rarRational Rose 2003的安装过程.aviUML综合练习.mdl附录_用例文档示例.pdf模式.doc深入浅出设计模式.pdf10_OAapache-ant-1.6.5dom4j-1.6.1freemarker-2.3.10jbpmjunit3.8.1oa_modelpager-taglibxdoclet-plugins-1.0.3页面模版支持多线程断点续传下载freemarker-2.3.10.tar.gzAnt介绍.docDWR介绍.docOA系统需求说明书_初步.docOA知识点总结.docWebLogic的安装与使用.docXdoclet介绍.doc日志记录(log4j等)介绍.doc实战Dojo工具包.pdfdwr.warserver900_win32.exe11_crmCRM相关资料ibatis-2.3.0.677poi-bin-3.0-FINAL-20070503sourcestruts-2.0.9tapestry-project-4.1.2tapestry-spring-1.0.0tomahawk-examples-1.1.6-bin navigation.ftltapestry-project-4.1.2-full.tar.gz tomahawk-1.1.6-bin.tar.gz tomahawk-examples-1.1.6-bin.tar.gz CRM模型.mdlValueStack.mdlCRM用例文档.dociBATIS介绍.docJavaServer Faces 表达式语言.doc JSF介绍.docStruts2介绍.docTapestry4.1.2入门.dociBATIS-SqlMaps-2_cn.pdfiBATIS-SqlMaps-2-Tutorial_cn.pdf Java Server Faces in Action.pdfjsf-1_2-fr-spec.pdfJSF in Action中文版(Sample).pdfManning - JavaServer Faces in Action - 2004.pdf12_messagesspring_struts_hibernate_messages13_ejb3ccsejb3.0hibernate-annotations-3.2.0.CR1javaee-5_0-fr-specjboss-4.0.5.GAJMS与MDB介绍.docJPA基本概念.doc安装JBOSS的过程.avi知识点.doc14_interviewJAVA面试笔试题大汇总Java程序员面试.ppt15_J2ME_3Gapache-tomcat-5.5.17j2meJ2ME相关WAP必备技术元素表.xls16_LinuxLinuxISODocumentsFlashFXP.3.0.2.build.1043.Final.Cracked-9DownVMware-workstation-5.5.3-34685xmanagerj2me_wireless_toolkit-2_2-linux-i386.binj2sdk-1_4_2_14-linux-i586.binjdk-1_5_0_12-linux-i586.binMyEclipseEnterprise(Linux)WorkbenchInstaller_5_1_0GA_E3_2_1.bin apache-tomcat-5.tar.gzeclipse-SDK-3.2.2-linux-gtk.tar.gzmysql-5.0.27.tar.gznvidia-xconfig-1.0.tar.gzproftpd-1.3.0a.tar.gzzhcon-0.2.3.tar.gzlinux(尚学堂).ppttelnet-server-0.17-25.i386.rpmNVIDIA-Linux-x86-1.0-9755-pkg1.run上学堂全套视频,下面是视频内容的介绍:◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆第一部分:J2se学习视频内容包括:尚学堂科技_马士兵_JAVA视频教程_JDK5.0_下载-安装-配置尚学堂科技_马士兵_JAVA视频教程_J2SE_5.0_第01章_JAVA简介_源代码_及重要说明尚学堂科技_马士兵_JAVA视频教程_J2SE_5.0_第02章_递归补充尚学堂科技_马士兵_JAVA视频教程_J2SE_5.0_第02章_基础语法尚学堂科技_马士兵_JAVA视频教程_J2SE_5.0_第03章_面向对象尚学堂科技_马士兵_JAVA视频教程_J2SE_5.0_第04章_异常处理尚学堂科技_马士兵_JAVA视频教程_J2SE_5.0_第05章_数组尚学堂科技_马士兵_JAVA视频教程_J2SE_5.0_第06章_常用类尚学堂科技_马士兵_JAVA视频教程_J2SE_5.0_第07章_容器尚学堂科技_马士兵_JAVA视频教程_J2SE_5.0_第08章_IO尚学堂科技_马士兵_JAVA视频教程_J2SE_5.0_第09章_线程尚学堂科技_马士兵_JAVA视频教程_J2SE_5.0_第10章_网络尚学堂科技_马士兵_JAVA视频教程_J2SE_5.0_第11章_GUI尚学堂科技_马士兵_JAVA视频教程_J2SE_5.0_专题_日期处理尚学堂科技_马士兵_JAVA视频教程_J2SE_专题_正则表达式反射avi◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆第二部分:j2se练习项目视频内容包括:尚学堂科技_马士兵_在线聊天系统雏形视频教程_java_eclipse尚学堂科技_马士兵_坦克大战视频教程_java_eclipse尚学堂科技_马士兵_坦克大战图片版尚学堂科技_马士兵_JAVA_坦克大战网络版视频教程尚学堂科技_马士兵_snake_贪吃蛇内部视频◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆第三部分数据库视频Oracle视频内容包括:01——53讲avi格式◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆第四部分:JDBC和MySQL视频,内容包括:1_lomboz_eclipse_jdbc2_mysql_avi3_连接池的设计思路.avi◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆第五部分:HTML & CSS & JAVASCRIPT 视频:Html & CSS 视频内容简介:01_html简单介绍和meta标签.avi02_a_路径问题等等.avi03_学习方法_其他常用标签.avi04_1_note.avi04_表格和表单_1.avi05_表格和表单_2.avi06_Frame.avi07_Dreamweaver.avi08_CSS_1.avi09_CSS_2_选择方式.avi10_CSS_3.avi11_CSS_4.aviJavaScript 视频简介:01_JS初步及调试.avi02_JS基本语法.avi03_函数_事件处理_1.avi04_事件处理_2.avi05_内置对象_DOM_BOM.avi06_趣味.avi07_实用.avi08_表单验证.avi09_表单验证_new.avi10_后台框架.avi11_后台框架_2.avi12_TREE.avi◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆第六部分:Servlet & JSP视频——内容包括:1 tomcat的安装使用,配置2 servlet & jsp 视频 1——30节jsp的练习项目内容包括:3 简单bbs项目3 2007美化BBS项目4 网上商城项目视频4 网上商城项目视频讲解视频◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆第七部分:J2EE学习视频包括:DRP项目框架视频学习:Struts视频Hibernate视频Spring视频提高部分:uml统一建模语言视频SSH项目视频:oa办公自动化系统视频crm项目视频银行系统视频ejb3.0视频J2ME_3G简介资料面试材料:面试题大汇总+笔记+技巧◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆。
spring框架案例学习文档笔记
(一) 搭建annotation开发环境....................................................................................................... 错误!未定义书签。
(二) aspectJ类库 ............................................................................................................................. 错误!未定义书签。
(三) AOP的annotation实例 .......................................................................................................... 错误!未定义书签。
(四) AspectJ的专业术语 ................................................................................................................. 错误!未定义书签。
(五) 织入点语法 .............................................................................................................................. 错误!未定义书签。
(六) Advice ....................................................................................................................................... 错误!未定义书签。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
s课程内容1.面向接口(抽象)编程的概念与好处2.IOC/DI的概念与好处a)inversion of controlb)dependency injection3.AOP的概念与好处4.Spring简介5.Spring应用IOC/DI(重要)a)xmlb)annotation6.Spring应用AOP(重要)a)xmlb)annotation7.Struts2.1.6 + Spring2.5.6 + Hibernate3.3.2整合(重要)a)opensessionInviewfilter(记住,解决什么问题,怎么解决)8.Spring JDBC面向接口编程(面向抽象编程)1.场景:用户添加2.Spring_0100_AbstractOrientedProgramminga)不是AOP:Aspect Oriented Programming3.好处:灵活什么是IOC(DI),有什么好处1.把自己new的东西改为由容器提供a)初始化具体值b)装配2.好处:灵活装配Spring简介1.项目名称:Spring_0200_IOC_Introduction2.环境搭建a)只用IOCi.spring.jar , jarkata-commons/commons-loggin.jar3.IOC容器a)实例化具体beanb)动态装配4.AOP支持a)安全检查b)管理transactionSpring IOC配置与应用1.FAQ:不给提示:a)window – preferences – myeclipse – xml – xml catalogb)User Specified Entries – addi.Location:D:\share\0900_Spring\soft\spring-framework-2.5.6\dist\resources\spring-beans-2.5.xsdii.URI:file:///D:/share/0900_Spring/soft/spring-framework-2.5.6/dist/resources/spring-beans-2.5.xsd iii.Key Type: Schema Locationiv.Key: /schema/beans/spring-beans-2.5.xsd2.注入类型a)Spring_0300_IOC_Injection_Typeb)setter(重要)c)构造方法(可以忘记)d)接口注入(可以忘记)3.id vs. namea)Spring_0400_IOC_Id_Nameb)name可以用特殊字符4.简单属性的注入a)Spring_0500_IOC_SimplePropertyb)<property name=… value=….>5.<bean 中的scope属性a)Spring_0600_IOC_Bean_Scopeb)singleton 单例c)proptotype 每次创建新的对象6.集合注入a)Spring_0700_IOC_Collectionsb)很少用,不重要!参考程序7.自动装配a)Spring_0800_IOC_AutoWireb)byNamec)byTyped)如果所有的bean都用同一种,可以使用beans的属性:default-autowire8.生命周期a)Spring_0900_IOC_Life_Cycleb)lazy-init (不重要)c)init-method destroy-methd 不要和prototype一起用(了解)9.Annotation第一步:a)修改xml文件,参考文档<context:annotation-config />10.@Autowireda)默认按类型by typeb)如果想用byName,使用@Qulifierc)写在private field(第三种注入形式)(不建议,破坏封装)d)如果写在set上,@qualifier需要写在参数上11.@Resource(重要)a)加入:j2ee/common-annotations.jarb)默认按名称,名称找不到,按类型c)可以指定特定名称d)推荐使用e)不足:如果没有源码,就无法运用annotation,只能使用xml12.@Component @Service @Controller @Repositorya)初始化的名字默认为类名首字母小写b)可以指定初始化bean的名字13.@Scope14.@PostConstruct = init-method; @PreDestroy = destroy-method; 什么是AOP1.面向切面编程Aspect-Oriented-Programminga)是对面向对象的思维方式的有力补充2.Spring_1400_AOP_Introduction3.好处:可以动态的添加和删除在切面上的逻辑而不影响原来的执行代码a)Filterb)Struts2的interceptor4.概念:a)JoinPoint 释意:切面与原方法交接点即切入点b)PointCut 释意:切入点集合c)Aspect(切面)释意:可理解为代理类前说明d)Advice 释意:可理解为代理方法前说明例如@Beforee)Target 释意:被代理对象被织入对象f)Weave 释意:织入Spring AOP配置与应用1.两种方式:a)使用Annotationb)使用xml2.Annotationa)加上对应的xsd文件spring-aop.xsdb)beans.xml <aop:aspectj-autoproxy />c)此时就可以解析对应的Annotation了d)建立我们的拦截类e)用@Aspect注解这个类f)建立处理方法g)用@Before来注解方法h)写明白切入点(execution …….)i)让spring对我们的拦截器类进行管理@Component3.常见的Annotation:a)@Pointcut 切入点声明以供其他方法使用, 例子如下:@Aspect@Componentpublic class LogInterceptor {@Pointcut("execution(public * com.bjsxt.dao..*.*(..))")public void myMethod(){}@Around("myMethod()")public void before(ProceedingJoinPoint pjp) throws Throwable{System.out.println("method before");pjp.proceed();}@AfterReturning("myMethod()")public void afterReturning() throws Throwable{System.out.println("method afterReturning");}@After("myMethod()")public void afterFinily() throws Throwable{System.out.println("method end");}}b)@Before 发放执行之前织入c)@AfterReturning 方法正常执行完返回之后织入(无异常)d)@AfterThrowing 方法抛出异常后织入e)@After 类似异常的finallyf)@Around 环绕类似filter , 如需继续往下执行则需要像filter中执行FilterChain.doFilter(..)对象一样执行ProceedingJoinPoint.proceed()方可,例子如下:@Around("execution(* com.bjsxt.dao..*.*(..))")public void before(ProceedingJoinPoint pjp) throws Throwable{System.out.println("method start");pjp.proceed();//类似FilterChain.doFilter(..)告诉jvm继续向下执行}4.织入点语法a)void !voidb)参考文档(* ..)如果execution(* com.bjsxt.dao..*.*(..))中声明的方法不是接口实现则无法使用AOP实现动态代理,此时可引入包” cglib-nodep-2.1_3.jar”后有spring自动将普通类在jvm中编译为接口实现类,从而打到可正常使用AOP的目的.5.xml配置AOPa)把interceptor对象初始化b)<aop:configi.<aop:aspect …..1.<aop:pointcut2.<aop:before例子:<bean id="logInterceptor" class="com.bjsxt.aop.LogInterceptor"></bean><aop:config><!-- 配置一个切面 --><aop:aspect id="point" ref="logInterceptor"><!-- 配置切入点,指定切入点表达式 --><!-- 此句也可放到 aop:aspect标签外依然有效--><aop:pointcutexpression="execution(public * com.bjsxt.service..*.*(..))"id="myMethod" /><!-- 应用前置通知 --><aop:before method="before" pointcut-ref="myMethod" /><!-- 应用环绕通知需指定向下进行 --><aop:around method="around" pointcut-ref="myMethod" /><!-- 应用后通知 --><aop:after-returning method="afterReturning"pointcut-ref="myMethod" /><!-- 应用抛出异常后通知 --><aop:after-throwing method="afterThrowing"pointcut-ref="myMethod" /><!-- 应用最终通知 --><aop:after method="afterFinily"pointcut="execution(public * om.bjsxt.service..*.*(..))" /></aop:aspect></aop:config>Spring整合Hibernate1.Spring 指定datasourcea)参考文档,找dbcp.BasicDataSourcei.c3p0ii.dbcpiii.proxoolb)在DAO或者Service中注入dataSourcec)在Spring中可以使用PropertyPlaceHolderConfigure来读取Properties文件的内容2.Spring整合Hibernatea)<bean .. AnnotationSessionFactoryBean>i.<property dataSourceii.<annotatedClassesb)引入hibernate 系列jar包c)User上加Annotationd)UserDAO或者UserServie 注入SessionFactorye)jar包问题一个一个解决3.声明式的事务管理a)事务加在DAO层还是Service层?b)annotationi.加入annotation.xsdii.加入txManager beaniii.<tx:annotation-driven例如: <bean id="transactionManager"class="org.springframework.orm.hibernate3.HibernateTransactionManager"><property name="sessionFactory"><ref bean="sessionFactory" /></property></bean><tx:annotation-driven transaction-manager="transactionManager"/> iv.在需要事务的方法上加:@Transactionalv.需要注意,Hibernate获得session时要使用SessionFactory.getCurrentSession 不能使用OpenSessionc)@Transactional详解i.什么时候rollback1.运行期异常,非运行期异常不会触发rollback2.必须uncheck (没有catch)3.不管什么异常,只要你catch了,spring就会放弃管理4.事务传播特性:propagation_required例如: @Transactional(propagation=Propagation.REQUIRED)等同于(@Transactional)作用,一个方法声明了@Transactional事务后,其内再调用的方法不需要再声明@Transactional.5.read_only例如: @Transactional(propagation=Propagation.REQUIRED,readOnly=true)当方法声明readOnly=true时,该方法及其调用的方法内都不执行insert update等d)xml(推荐,可以同时配置好多方法)i.<bean txmanagerii.<aop:config1.<aop:pointcut2.<aop:advisor pointcut-ref advice-refiii.<tx:advice: id transaction-manager =iv.<property name="packagesToScan"> 可定义扫描目标包下所有实体类例如: <bean id="sessionFactory"class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean"><property name="dataSource" ref="dataSource" /><property name="hibernateProperties"><props><prop key="hibernate.dialect">org.hibernate.dialect.OracleDialect</prop> <prop key="hibernate.show_sql">true</prop></props></property><!--<property name="annotatedClasses"><list><value>com.bjsxt.model.TestUser</value><value>com.bjsxt.model.Log</value></list></property>--><!-- 将参数名称设为packagesToScan 可定义扫描目标包下所有实体类--><property name="packagesToScan"><list><value>com.bjsxt.model</value></list></property></bean><bean id="transactionManager"class="org.springframework.orm.hibernate3.HibernateTransactionManager"><property name="sessionFactory"><ref bean="sessionFactory" /></property></bean><aop:config><aop:pointcutexpression="execution(public * com.bjsxt.service..*.*(..))"id="myServiceMethod" /><aop:advisor pointcut-ref="myServiceMethod" advice-ref="txAdvice"/> </aop:config><tx:advice id="txAdvice" transaction-manager="transactionManager"><tx:attributes><tx:method name="save*" propagation="REQUIRED" /><tx:method name="add*" propagation="REQUIRED" /><tx:method name="update*" propagation="REQUIRED" /><tx:method name="del*" propagation="REQUIRED" /><tx:method name="cancel*" propagation="REQUIRED" /><tx:method name="*" read-only="true" /></tx:attributes></tx:advice>e)HibernateTemplate、HibernateCallback、HibernateDaoSupport(不重要)介绍i.设计模式:Template Method(模板方法)ii.Callback:回调/钩子函数iii.第一种:(建议)1.在spring中初始化HibernateTemplate,注入sessionFactory<bean id="hibernateTemplate"class="org.springframework.orm.hibernate3.HibernateTemplate"><property name="sessionFactory" ref="sessionFactory" /></bean>2.DAO里注入HibernateTemplateprivate HibernateTemplate hibernateTemplate;@Resourcepublic void setHibernateTemplate(HibernateTemplate hibernateTemplate) { this.hibernateTemplate = hibernateTemplate;}3.save写getHibernateTemplate.save();public void save(TestUser testUser) {hibernateTemplate.save(testUser);}iv.第二种:1.从HibernateDaoSupport继承(此方法不好用可忽略)2.必须写在xml文件中,无法使用Annotation,因为set方法在父类中,而且是final的例如:首先,新建SuperDAOImpl类(使用Annotation注入--@Component):@Componentpublic class SuperDAOImpl {private HibernateTemplate hibernateTemplate; //此处定义由spring注入管理public HibernateTemplate getHibernateTemplate() {return hibernateTemplate;}@Resourcepublic void setHibernateTemplate(HibernateTemplate hibernateTemplate) { this.hibernateTemplate = hibernateTemplate;}}此时,xml中必须要有:<bean id="hibernateTemplate"class="org.springframework.orm.hibernate3.HibernateTemplate"><property name="sessionFactory" ref="sessionFactory" /></bean>或者,SuperDAOImpl类写成下面代码:@Componentpublic class SuperDAOImpl extends HibernateDaoSupport {@Resource(name="sessionFactory")public void setSuperHibernateTemplate(SessionFactory sessionFactory) { super.setSessionFactory(sessionFactory);}}对应的xml中则可省略<bean id="hibernateTemplate"………部分只要包含<bean id="sessionFactory"……..部分即可最后,其他类继承SuperDaoImpl类后便可直接使用HibernateTemplate@Component("u")public class UserDAOImpl extends SuperDAOImpl implements UserDAO {public void save(TestUser testUser) {this.getHibernateTemplate().save(testUser);}}f)spring整合hibernate的时候使用packagesToScan属性,可以让spring自动扫描对应包下面的实体类Struts2.1.6 + Spring2.5.6 + Hibernate3.3.2 1.需要的jar包列表a)将这些所有的jar包保存到一个位置,使用的时候直接copy3.步骤a)加入jar包b)首先整合Spring + Hibernatei.建立对应的package1.dao / dao.impl / model / service / service.impl/ testii.建立对应的接口与类框架1.S2SH_01iii.建立spring的配置文件(建议自己保留一份经常使用的配置文件,以后用到的时候直接copy改)iv.建立数据库v.加入Hibernate注解1.在实体类上加相应注解@Entity @Id等在字段属性的get方法上加--@Column(name = "表字段名")2.在beans配置文件配置对应的实体类,使之受管vi.写dao service的实现vii.加入Spring注解1.在对应Service及DAO实现中加入@Component,让spring对其初始化2.在Service上加入@Transactional或者使用xml方式(此处建议后者,因为更简单)3.在DAO中注入sessionFactory4.在Service中注入DAO5.写DAO与Service的实现viii.写测试c)整合Struts2i.结合点:Struts2的Action由Spring产生ii.步骤:1.修改web.xml加入struts的filter如下:<filter><filter-name>struts2</filter-name><filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter </filter-class></filter><filter-mapping><filter-name>struts2</filter-name><url-pattern>/*</url-pattern></filter-mapping>2.再加入spring的listener,这样的话,webapp一旦启动,spring容器就初始化了如下:<!-- 指定由spring初始化加载xml配置文件spring与struts结合必备--><listener><listener-class>org.springframework.web.context.ContextLoaderListener<!-- 默认寻找xml路径:WEB-INF/applicationContext.xml --> </listener-class></listener><!--整个应用的参数服务启动时读取.可指定spring初始化文件路径位置--><context-param><param-name>contextConfigLocation</param-name><param-value>classpath*:spring/*applicationContext.xml</param-value></context-param>3.规划struts的action和jsp展现4.加入struts.xmla)修改配置,由spring替代struts产生Action对象5.修改action配置a)把类名改为bean对象的名称,这个时候就可以使用首字母小写了b)@Scope(―prototype‖)不要忘记iii.struts的读常量:1.struts-default.xml2.struts-plugin.xml3.struts.xml4.struts.properties5.web.xmliv.中文问题:1.Struts2.1.8已经修正,只需要改i18n.encoding = gbk2.使用spring的characterencoding例:<!-- 过滤器相关配置======== 字符编码过滤======== --><filter><filter-name>CharacterEncodingFilter</filter-name><filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class><init-param><param-name>encoding</param-name><param-value>UTF-8</param-value></init-param><init-param><param-name>forceEncoding</param-name><param-value>true</param-value></init-param></filter>3.需要严格注意filter的顺序4.需要加到Struts2的filter前面zyInitializationException1.OpenSessionInViewFilter2.需要严格顺序问题3.需要加到struts2的filter前面附:1.@Autowired 与@Resource 都可以用来装配bean. 都可以写在属性定义上,或写在set方法上@Autowired (srping提供的) 默认按类型装配@Resource ( j2ee提供的) 默认按名称装配,当找不到(不写name属性)名称匹配的bean再按类型装配. 可以通过@Resource(name="beanName") 指定被注入的bean的名称, 要是指定了name属性, 就用字段名去做name属性值,一般不用写name属性.@Resource(name="beanName")指定了name属性,按名称注入但没找到bean, 就不会再按类型装配了.@Autowired 与@Resource可作用在属性定义上, 就不用写set方法了(此方法不提倡);2.a.Action类前加@Component,则Action可由spring来管理,例子如下:Action中写:@Component("u") //spring管理注解@Scope("prototype") //多态public class UserAction extends ActionSupport implements ModelDriven{//内部属性需要有get/set方法且需要set方法前加@Resource或@Autowired }Struts2配置文件中写<action name="u" class="u">Jsp中<form method="post" action="u.do" >b.Action中也可不加@Component,Action由struts2-spring-plugin管理。