黑马程序员spring知识总结 技术帖

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

Spring框架一、技术说明(技术介绍,技术优势以及发展史等)1.1、什么是springSpring是分层的JavaSE/EEfull-stack轻量级开源框架分层:三层体系结构,为每一个层都提供解决方案web层:struts2、spring-mvcservice层:springdao层:hibernate、mybatis、jdbcTemplate(spring)轻量级:使用时占用资源少,依赖程序少。比较:EJB1.2、spring由来ExpertOne-to-OneJ2EEDesignandDevelopment,介绍EJB,使用,特点ExpertOne-to-OneJ2EEDevelopmentwithoutEJB,不使用EJB,spring思想1.3、spring核心以IoC(InverseofControl反转控制)和AOP(AspectOrientedProgramming面向切面编程为内核)1.4、spring优点方便解耦,简化开发(易扩展,易维护)•Spring就是一个大工厂,可以将所有对象创建和依赖关系维护,交给Spring管理AOP编程的支持•Spring提供面向切面编程,可以方便的实现对程序进行权限拦截、运行监控等功能声明式事务的支持•只需要通过配置就可以完成对事务的管理,而无需手动编程方便程序的测试•Spring对Junit4支持,可以通过注解方便的测试Spring程序方便集成各种优秀框架•Spring不排斥各种优秀的开源框架,其内部提供了对各种优秀框架(如:Struts、Hibernate、MyBatis、Quartz等)的直接支持降低JavaEEAPI的使用难度•Spring对JavaEE开发中非常难用的一些API(JDBC、JavaMail、远程调用等),都提供了封装,使这些API应用难度大大降低1.5、spring体系结构spring核心功能:beans、core、context、expression二、环境搭建(技术开发环境)2.1、获取Springframeworkjar包1、spring官网下载从官网下载spring最新的相关jar包,官网download地址下载完成后会发现三个目录,命名很明确。Docs目录相关文档。包括一份API和一份各种spring的使用说明(reference),reference提供了HTML.PDF版本,非常详细。2.spring包的核心包搭建第一个用到spring依赖注册的程序直接用eclipse建立一个JAVA项目然后添加spring的jar包引入spring-core-3.2.0.M1.jar核心依赖jar包spring-context-3.2.0.M1.jarSpring容器包spring-beans-3.2.0.M1.jarSpringbeans的管理包spring-asm-3.2.0.M1.jarSpring注:和hibernate一起用时这个JAR会冲突,解决方法删掉它就是了org.springframework.beans.factory.BeanCreationException:Errorcreatingbeanwithname'sessionFactory'definedinServletContextresource[/WEB-INF/classes/applicationContext.xml]:Invocationofinitmethodfailed;nestedexceptionisjava.lang.NoSuchMethodError:org.objectweb.asm.ClassVisitor.visit(IILjava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;)Causedby:java.lang.NoSuchMethodError:org.objectweb.asm.ClassVisitor.visit(IILjava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;)spring-expression-3.2.0.M1.jar除此之外,还有需要一个Apachecommon的JAR包注:如果忘记添加会commons-logging-1.1.1.jar报错Exceptioninthreadmainjava.lang.NoClassDefFoundError:org/apache/commons/logging/LogFactorycommons-logging-1.1.1.jar日志记录3.配置XMLSpring的最大的作用就是提供bean的管理功能,在spring中bean的管理是通过XML实现的,要用此功能,需要把bean配置到spring的xml1.新建立一个xml.名字任意,如applicationContext.xml,或者text.xml都可以2.添加xml头定义?xmlversion=1.0encoding=utf-8?beansxmlns=①xsi:schemaLocation=②③bean/bean/beans①Xmlns(XMLNameSpace)声明命名空间,建议是用网址做命名空间,但并不会去访问改网址,仅仅是namespace和xsd(xsd是spring这个xml的schema文件,里面定义配置内容)里声明的targetNamespace保持一致.注:这里命名空间是改不了的,其实是在代码中也写死了,可以打开spring-beans3.2.0.M1-sources.jar包的org\springframework\beans\factory\xml\BeanDefinitionParserDelegate.java查看对这个namespace的定义。②schemaLoacation.用于绑定命名空间的schema文件,通常是用URL值对,中间用空格隔开,前面URL是命名空间,后面URL为schema的文件地址③xsd的存放地址,如果没有声明,eclipse会去网上下载.在创建xml时,在eclipse编辑xml配置没有提示。可以对eclipse中进行schema文件的添加具体是搜索XMLcatalog,添加schema文件。Spring的schema文件在下载包里有,找到spring-3.2.0.M1\schema\beans\spring-beans-3.2.xsd然后添加,编写spring配置文件就能有提示了4.依赖注入4.1、spring注入的简单案例(入门级)新建一个class用于注入,packageorg.beans;publicclassTest{publicvoidsay(){System.out.println(welcome);}}把类通过xml配置注入?xmlversion=1.0encoding=utf-8?beansxmlns=:schemaLocation=://=testclass=org.beans.Test//beans测试:packageorg.beans;importorg.springframework.context.ApplicationContext;importorg.springframework.context.support.ClassPathXmlApplicationContext;publicclasstestBeans{publicstaticvoidmain(String[]args){ApplicationContextctx=newClassPathXmlApplicationContext(test.xml);Testtest=(Test)ctx.getBean(test);test.say();}}4.2、spring框架为我们提供了三种注入方式,分别是set注入,构造方法注入,接口注入。接口注入不作要求,下面介绍前两种方式。1、set注入采用属性的set方法进行初始化,就成为set注入。1)给普通字符类型赋值。[java]viewplaincopyprint?1.publicclassUser{2.privateStringusername;3.4.publicStringgetUsername(){5.returnusername;6.}7.publicvoidsetUsername(Stringusername){8.this.username=username;9.}10.}我们只需要提供属性的set方法,然后去属性文件中去配置好让框架能够找到applicationContext.xml文件的beans标签。标签beans中添加bean标签,指定id,class值,id值不做要求,class值为对象所在的完整路径。bean标签再添加property标签,要求,name值与User类中对应的属性名称一致。value值就是我们要给User类中的username属性赋的值。1.beanid=userActionclass=com.lsz.spring.action.User2.spanstyle=white-space:pre/spanpropertyname=usernamevalue=admin/property3./bean2)给对象赋值同样提供对象的set方法1.publicclassUser{2.privateUserServiceuserservice;3.publicUserServicegetUserservice(){4.returnuser;5.}6.publicvoidsetUserservice(UserServiceuserservice){7.this.userservice=userservice;8.}9.}配置文件中要增加UserService的bean标签声明及User对象对UserService引用。1.!--对象的声明--2.beanid=userServiceclass=com.lsz.spring.service.UserService/bean3.4.beanid=userActionclass=com.lsz.spring.action.User5.propertyname=userserviceref=userService/property6./bean这样配置,框架就会将UserService对象注入到User类中。3)给list集合赋值同样提供set方法1.publicclassUser{2.privateListStringusername;3.publicListStringgetUsername(){4.returnusername;5.}6.publicvoidsetUserna

1 / 64
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功