您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > 数据库 > spring总结笔记
一:Spring第一天1:导入spring相关的jar包(1)spring-framework-3.0.2.RELEASE(核心包)写法:org.springframework……..(2)spring第三方依赖包spring-framework-3.0.2.RELEASE-dependencies.zip写法:com.springsource.org.apache.log4j-sources-1.2.15.jar(第三方包)Spring开发需要哪些jar包2:spring的核心容器默认的写法:applicationContext.xml(默认文件放置到src下,但是也可以更改路径)可以自定义命名:beans.xml在beans.xml中引入约束的文件beansxmlns=:xsi=:schemaLocation=://如果你发现在beans.xml中不能显示对应的提示:此时xsd的文件没有被加载到myeclipse中3:spring加载容器的方式核心对象:4:控制反转(IOC)(1)概念:所谓控制反转就是应用本身不负责依赖对象的创建及维护,依赖对象的创建及维护是由外部容器负责的。这样控制权就由应用转移到了外部容器,控制权的转移就是所谓反转,目的是为了获得更好的扩展性和良好的可维护性。(2)代码:存在一个Boy对象:publicclassBoy{publicvoiddisplay(){System.out.println(我+是一个优秀的Boy!);}}在spring容器中定义:?xmlversion=1.0encoding=UTF-8?beansxmlns=:xsi=:schemaLocation=://!--指定在容器中创建一个对象*id:表示在spring容器中的惟一标识*class:表示需要构造的类的全路径--beanid=boyclass=cn.itcast.a_ioc.Boy/bean/beans使用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():表示默认加载类路径下的applicationContext.xml*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)概念:所谓依赖注入就是指:在运行期,由外部容器动态地将依赖对象注入到另一个对象的组件中。类中定义:创建2个对象,一个Boy对象和一个Girl对象packagecn.itcast.b_di;publicclassBoy{publicvoiddisplay(){System.out.println(我是一个优秀的Boy!);}}publicclassGirl{Boyboy;//完成依赖注入,必须的set方法publicvoidsetBoy(Boyboy){this.boy=boy;}publicvoidkiss(){boy.display();System.out.println(执行Kiss的方法!);}}在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最后使用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();}}原理:其实IOC(控制反转)是利用java的反射思想实现的DI(依赖注入)是利用java的内省机制实现详情请看代码:itcast1206_b_springParse6:spring容器中bean节点id和name的区别项目开发的时候,强烈要求用id,因为id可以表示惟一引用7:加载spring容器的3种方式/***方法一:在类路径下寻找配置文件来实例化容器*///使用applicationContext加载spring容器//如果定义成数组一次可以加载多个spring容器//ApplicationContextac=newClassPathXmlApplicationContext(newString[]{cn/itcast/b_di/beans.xml});/***方法二:在文件系统路径下寻找配置文件来实例化容器*///ApplicationContextac=newFileSystemXmlApplicationContext(newString[]{D:\\workspaceSpring\\itcast1206_a_springBean\\src\\cn\\itcast\\b_di\\beans.xml});/***方法三:使用BeanFactory*/BeanFactoryac=newXmlBeanFactory(newFileSystemResource(D:\\workspaceSpring\\itcast1206_a_springBean\\src\\cn\\itcast\\b_di\\beans.xml));8:三种实例化bean的方式定义一个接口和实现类接口:publicinterfaceIUserService{publicvoidsaveUser();}实现类publicclassUserServiceImplimplementsIUserService{publicvoidsaveUser(){System.out.println(访问UserServiceImpl类的saveUser()的方法);}}(1)使用接口和类,直接在spring容器中创建一个类,使用接口进行操作在容器中定义:beanid=userServiceclass=cn.itcast.c_class.UserServiceImpl/bean注意:class一定要是类,不能使用接口测试:@Testpublicvoidtest1(){ApplicationContextapplicationContext=newClassPathXmlApplicationContext(cn/itcastl/pn/domain/beans.xml);UserServicebean=(UserService)applicationContext.getBean(userService);bean.saveUser();}(2)使用静态工厂方法实例化(简单工厂模式)1:Spring容器中定义:beanid=userObjectclass=cn.itcast.d_staticMethod.UserObjectfactory-method=createUser/bean2:UserObject对象中提供一个静态的的方法,用来创建对象publicclassUserObject{//静态的方法publicstaticIUserServicecreateUser(){returnnewUserServiceImpl();}}测试:@Testpublicvoidtest1(){ApplicationContextapplicationContext=newClassPathXmlApplicationContext(cn/itcastl/pn/domain/beans.xml);UserServicebean=(UserService)applicationContext.getBean(userObject);bean.saveUser();}(3)使用实例工厂方法实例化(工厂方法模式):1:Spring容器中定义:beanid=userObjectclass=cn.itcast.e_method.UserObject/beanbeanid=userfacto
本文标题:spring总结笔记
链接地址:https://www.777doc.com/doc-6224866 .html