1、Spring Framework 是一个开源的 Java/Java EE 全功能栈(full-stack )的应用程序框架,以 Apache 许可证形式发布,也有.NET 平台上的移植版本。该框架基于 Expert One-on-One Java EE Design and Development(ISBN 0-7645-4385-7)一书中的代码,最初由 Rod Johnson 和 Juergen Hoeller 等开发。Spring Framework 提供了一个简易的开发方式,这种开发方式,将避免那些可能致使底层代码变得繁杂混乱的大量的属性文件和帮助类。Spring 中包含的关键特性:
2、强大的基于 JavaBeans 的采用控制翻转(Inversion of Control,IoC )原则的配置管理,使得应用程序的组建更加快捷简易。 一个可用于从 applet 到 Java EE 等不同运行环境的核心 Bean 工厂。 数据库事务的一般化抽象层,允许宣告式(Declarative)事务管理器,简化事务的划分使之与底层无关。 内建的针对 JTA 和 单个 JDBC 数据源的一般化策略,使 Spring 的事务支持不要求 Java EE 环境,这与一般的 JTA 或者 EJB CMT 相反。 JDBC 抽象层提供了有针对性的异常等级( 不再从 SQL 异常中提取原始代码), 简化
3、了错误处理, 大大减少了程序员的编码量. 再次利用 JDBC 时,你无需再写出另一个 终止 (finally) 模块. 并且面向 JDBC 的异常与 Spring 通用数据访问对象 (Data Access Object) 异常等级相一致. 以资源容器,DAO 实现和事务策略等形式与 Hibernate,JDO 和 iBATIS SQL Maps 集成。利用众多的翻转控制方便特性来全面支持, 解决了许多典型的Hibernate 集成问题 . 所有这些全部遵从 Spring 通用事务处理和通用数据访问对象异常等级规范. 灵活的基于核心 Spring 功能的 MVC 网页应用程序框架。开发者通过策
4、略接口将拥有对该框架的高度控制,因而该框架将适应于多种呈现(View)技术,例如 JSP,FreeMarker,Velocity,Tiles,iText 以及 POI。值得注意的是,Spring 中间层可以轻易地结合于任何基于 MVC 框架的网页层,例如 Struts,WebWork,或 Tapestry。 提供诸如事务管理等服务的面向方面编程框架。 在设计应用程序 Model 时,MVC 模式(例如 Struts)通常难于给出一个简洁明了的框架结构。Spring 却具有能够让这部分工作变得简单的能力。程序开发员们可以使用 Spring的 JDBC 抽象层重新设计那些复杂的框架结构。以下是一些
5、笔记:1.使用 jar 包spring.jarcommons-logging.jar使用 aopaspectjweaver.jar , aspectjrt.jar, cglib-nodep-2.1_3.jar使用注解common-annotations.jar2.实例化容器ApplicationContext context=new ClassPathXmlApplicationContext(new String“beans.xml”);ApplicationContext context=new ClassPathXmlApplicationContext(“beans.xml”);App
6、licationContext context=new FileSystemXmlApplicationContext(new String“d:beans.xml”);3.事务Transactional(propagation=Propagation.Required)4. 1) 单例模式下 singleton:默认情况下,加载 beans.xml 实例化各个 bean /验证:构造方法中输出信息通过来延迟初始化 bean,这时,只有第一次获取 bean时才初始化2) scope=prototype 时,getBean(“” )时实例化 bean加载实例后,执行 method 方法关闭容器后
7、,执行 method1 方法三种实例化 bean 的方式1 使用类构造器实例化2.使用静态工厂方法实例化public class OrdreFactorypublic static OrderFactory createOrder()return new OrderServiceBean();3.使用实例工厂方法实例化public class OrdreFactorypublic OrderFactory createOrder()return new OrderServiceBean();依赖注入手工装配Autowired 或 Resource 注解方式进行装配,common-annotat
8、ions.jar这两个注解的区别:Autowired 默认按类型装配,Resource 默认按名称装配,当找不到与名称匹配的 bean 才会按类型装配Beans.xml 导入 1)public class PersonServiceBean implements PersonServiceResource /默认按名称装配,当找不到与名称匹配的 bean 才会按类型装配private PersonDao personDao;public void test()personDao.add();2)public class PersonServiceBean implements PersonSe
9、rviceResource(name=”personDao”)private PersonDao personDao;public void test()personDao.add();3)public class PersonServiceBean implements PersonServiceprivate PersonDao personDao;Resourcepublic void setPersonDao (PersonDao personDao)this.personDao=personDao;public void test()personDao.add();Spring 自动
10、扫描和管理 bean Spring2.5 后Beans.xml 加入: /指定包下所有类1)Service /getBean(“personServiceBean”);名称为类名,首字母小写,默认作用域为 singletonpublic class PersonServiceBean implements PersonServiceprivate PersonDao personDao;public void setPersonDao (PersonDao personDao)this.personDao=personDao;public void test()personDao.add();
11、2)Service (“personService”) Scope(“prototype”)/指定 bean 名称 声明作用域public class PersonServiceBean implements PersonServiceprivate PersonDao personDao;public void setPersonDao (PersonDao personDao)this.personDao=personDao;PostConstruct/初始化方法public void init()system.out.println(“加载初始化 ”);PreDestroy/关闭容器释放public void destroy()system.out.println(“关闭容器释放 ”);public void test()personDao.add();动态代理 AOP1) 如果类实现接口,使用 jdk 生成代理2) 如果类没有实现接口,则使用 cglib 生成代理 cglib-nodep-2.1_3.jarjdbc.properties 中配置数据库信息 $ 获取
Copyright © 2018-2021 Wenke99.com All rights reserved
工信部备案号:浙ICP备20026746号-2
公安局备案号:浙公网安备33038302330469号
本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。