您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 咨询培训 > spring3课堂笔记
Spring课堂笔记一:Spring第一天1:开启spring之旅(1):spring介绍Spring是一个非常活跃的开源框架;它是一个基于IOC和AOP来构架多层JavaEE系统的框架,它的主要目地是简化企业开发.Spring以一种非侵入式的方式来管理你的代码,Spring提倡”最少侵入”,这也就意味着你可以适当的时候安装或卸载Spring官网:【1】项目中使用spring框架的优势:方便解耦,简化开发•Spring就是一个大工厂,可以将所有对象创建和依赖关系维护,交给Spring管理AOP编程的支持•Spring提供面向切面编程,可以方便的实现对程序进行权限拦截、运行监控等功能声明式事务的支持•只需要通过配置就可以完成对事务的管理,而无需手动编程方便程序的测试•Spring对Junit4支持,可以通过注解方便的测试Spring程序方便集成各种优秀框架•Spring不排斥各种优秀的开源框架,其内部提供了对各种优秀框架(如:Struts、Hibernate、MyBatis、Quartz等)的直接支持降低JavaEEAPI的使用难度•Spring对JavaEE开发中非常难用的一些API(JDBC、JavaMail、远程调用等),都提供了封装,使这些API应用难度大大降低【2】Spring模块介绍Spring框架是一个分层架构,,它包含一系列的功能要素并被分为大约20个模块。这些模块分为CoreContainer、DataAccess/Integration、Web、AOP(AspectOrientedProgramming)、Instrumentation和测试部分,如下图所示(2):导入spring相关的jar包(1)spring-framework-3.2.0.RELEASE(核心包)写法:org.springframework……..(2)spring第三方依赖包spring-framework-3.2.0.RELEASE-dependencies.zip写法:com.springsource.org.apache.log4j-sources-1.2.15.jar(第三方包)Spring开发需要哪些jar包(3):spring的核心容器默认的写法:applicationContext.xml(默认文件放置到src下,但是也可以更改路径)可以自定义命名:beans.xml在beans.xml中引入约束的文件beansxmlns=:xsi=:schemaLocation=://如果你发现在beans.xml中不能显示对应的提示:此时xsd的文件没有被加载到myeclipse中,按照下图进行配置spring加载容器的方式核心对象:/***newClassPathXmlApplicationContext(beans.xml):表示类路径下的beans.xml*newClassPathXmlApplicationContext(cn/itcast/a_ioc/beans.xml):表示类路径下的cn.itcast.a_ioc包下的beans.xml*/ApplicationContextac=newClassPathXmlApplicationContext(cn/itcast/a_ioc/beans.xml);(4):控制反转(IOC)(1)概念:所谓控制反转就是应用本身不负责依赖对象的创建及维护,依赖对象的创建及维护是由外部容器负责的。这样控制权就由应用转移到了外部容器,控制权的转移就是所谓反转,目的是为了获得更好的扩展性和良好的可维护性。(2)代码:存在一个Boy对象:publicclassBoy{publicvoiddisplay(){System.out.println(我是一个优秀的Boy!);}}(3)在spring容器中定义:?xmlversion=1.0encoding=UTF-8?beansxmlns=:xsi=:schemaLocation=://!--指定在容器中创建一个对象*id:表示在spring容器中的惟一标识*class:表示需要构造的类的全路径--beanid=boyclass=cn.itcast.a_ioc.Boy/bean/beans(4)使用App进行测试:packagecn.itcast.a_ioc;importorg.springframework.context.ApplicationContext;importorg.springframework.context.support.ClassPathXmlApplicationContext;publicclassApp{publicstaticvoidmain(String[]args){//Boyboy=newBoy();//boy.display();/**使用spring容器构造boy对象*///使用applicationContext加载spring容器/***newClassPathXmlApplicationContext(beans.xml):表示类路径下的beans.xml*newClassPathXmlApplicationContext(cn/itcast/a_ioc/beans.xml):表示类路径下的cn.itcast.a_ioc包下的beans.xml*/ApplicationContextac=newClassPathXmlApplicationContext(cn/itcast/a_ioc/beans.xml);//获取容器下的id指定的对象Boyboy=(Boy)ac.getBean(boy);boy.display();}}(5):依赖注入(DI)概念:所谓依赖注入就是指:在运行期,由外部容器动态地将依赖对象注入到另一个对象的组件中。(1)类中定义:创建2个对象,一个Boy对象和一个Girl对象Boy.javapackagecn.itcast.b_di;publicclassBoy{publicvoiddisplay(){System.out.println(我是一个优秀的Boy!);}}Girl.javapublicclassGirl{Boyboy;//完成依赖注入,必须的set方法publicvoidsetBoy(Boyboy){this.boy=boy;}publicvoidkiss(){boy.display();System.out.println(执行Kiss的方法!);}}(2)在spring容器中定义:?xmlversion=1.0encoding=UTF-8?beansxmlns=:xsi=:schemaLocation=://!--指定在容器中创建一个对象*id:表示在spring容器中的惟一标识*class:表示需要构造的类的全路径--beanid=boyclass=cn.itcast.b_di.Boy/beanbeanid=girlclass=cn.itcast.b_di.Girl!--将spring容器中创建的boy对象传递给Girl对象中的set方法*name:在Girl对象中的set方法的属性名称*ref:将容器创建的对象注入到set方法中--propertyname=boyref=boy/property/bean/beans(3)最后使用app进行测试:packagecn.itcast.b_di;importorg.springframework.context.ApplicationContext;importorg.springframework.context.support.ClassPathXmlApplicationContext;publicclassApp{publicstaticvoidmain(String[]args){//Boyboy=newBoy();//boy.display();//使用applicationContext加载spring容器ApplicationContextac=newClassPathXmlApplicationContext(cn/itcast/b_di/beans.xml);//获取容器下的id指定的对象Girlgirl=(Girl)ac.getBean(girl);girl.kiss();}}(6):模拟spring底层:IOC和DI原理其实*IOC(控制反转)是利用java的反射思想实现的*DI(依赖注入)是利用java的内省机制实现模拟spring底层的操作,查看控制反转和依赖注入的原理导入dom4j的jar包,用来解析xml文件(1)类中定义:创建2个对象,一个Boy对象和一个Girl对象Boy.javapackagecn.itcast.b_di;publicclassBoy{publicvoiddisplay(){System.out.println(我是一个优秀的Boy!);}}Girl.javapublicclassGirl{Boyboy;//完成依赖注入,必须的set方法publicvoidsetBoy(Boyboy){this.boy=boy;}publicvoidkiss(){boy.display();System.out.println(执行Kiss的方法!);}}(2):在src下创建beans.xml文件?xmlversion=1.0encoding=UTF-8?beansbeanid=boyclass=cn.itcast.bean.Boy/beanbeanid=girlclass=cn.itcast.bean.Girlpropertyname=boyref=boy/property/bean/beans(3):创建ApplicationContext接口publicinterfaceApplicationContext{ObjectgetBean(Stringname);}(4)创建ApplicationContext接口的实现类publicclassClassPathXmlApplicationContextimplementsApplicationContext{//传递的beans.xml文件的名称privateStringfilename;//存放由beans.xml创建的2个对象Boy和GilrprivateMa
本文标题:spring3课堂笔记
链接地址:https://www.777doc.com/doc-4353734 .html