spring_day01上课笔记
Spring学习笔记(一)

Spring学习笔记(⼀)Spring学习笔记(⼀)这是⼀个沉淀的过程,⼤概第⼀次接触Spring是在去年的这个时候,当初在实训,初次接触Java web,直接学习SSM框架(当是Servlet都没有学),于是,养成了⼀个很不好的学习习惯,就是“照猫画虎”。
别⼈做什么,照着样⼦就是了,没有任何的思考,这样的学习习惯肯定不会⾛太远。
现在我产⽣很多疑惑,这是什么?为什么这么做?如何做的更好?因此这次笔记的主题就是《这是什么?》1. spring框架概述1.1 什么是springSpring是⼀个开源框架,Spring是于2003 年兴起的⼀个轻量级的Java 开发框架,由Rod Johnson 在其著作Expert One-On-One J2EE Development and Design中阐述的部分理念和原型衍⽣⽽来。
它是为了解决企业应⽤开发的复杂性⽽创建的。
框架的主要优势之⼀就是其分层架构,分层架构允许使⽤者选择使⽤哪⼀个组件,同时为 J2EE 应⽤程序开发提供集成的框架。
Spring使⽤基本的JavaBean 来完成以前只可能由EJB完成的事情。
然⽽,Spring的⽤途不仅限于服务器端的开发。
从简单性、可测试性和松耦合的⾓度⽽⾔,任何Java应⽤都可以从Spring中受益。
Spring的核⼼是控制反转(IoC)和⾯向切⾯(AOP)。
简单来说,Spring是⼀个分层的JavaSE/EE full-stack(⼀站式) 轻量级开源框架。
[^摘⾃]: (百度百科)轻量级:与EJB对⽐,依赖资源少,销毁的资源少。
分层:⼀站式,每⼀个层都提供的解决⽅案1.2 spring由来Expert One-to-One J2EE Design and DevelopmentExpert One-to-One J2EE Development without EJB1.3 spring核⼼Spring的核⼼是控制反转(IoC)和⾯向切⾯(AOP)1.4 spring优点⽅便解耦,简化开发(⾼内聚低耦合)Spring就是⼀个⼤⼯⼚(容器),可以将所有对象创建和依赖关系维护,交给Spring管理spring⼯⼚是⽤于⽣成beanAOP编程的⽀持Spring提供⾯向切⾯编程,可以⽅便的实现对程序进⾏权限拦截、运⾏监控等功能声明式事务的⽀持只需要通过配置就可以完成对事务的管理,⽽⽆需⼿动编程⽅便程序的测试Spring对Junit4⽀持,可以通过注解⽅便的测试Spring程序⽅便集成各种优秀框架Spring不排斥各种优秀的开源框架,其内部提供了对各种优秀框架(如:Struts、Hibernate、MyBatis、Quartz等)的直接⽀持降低JavaEE API的使⽤难度Spring 对JavaEE开发中⾮常难⽤的⼀些API(JDBC、JavaMail、远程调⽤等),都提供了封装,使这些API应⽤难度⼤⼤降低1.5 spring体系结构Spring框架是⼀个分层架构,它包含⼀系列的功能要素并被分为⼤约20个模块。
Spring学习笔记1_Spring的概述

Spring学习笔记1_Spring的概述Java学习针对Java初学者以及自学者!公告通知如果你是初学者,或者是自学者!你可以加小编微信(xxf960513)!小编可以给你学习上,工作上的一些建议以及可以给你(免费)提供学习资料!最重要我们还可以交个朋友!你在学习上有什么问题都可以加小编微信进行私聊!小编都会为你解答!注:本公众号纯属个人公益公众号!不存在任何收费项目!免费分享所有学习资料!只求大家多多支持!多多关注!!本章目录 Spring学习笔记1_Spring的概述1.Spring介绍2.Spring作用3.Spring起源4.Spring体系结构5.Spring的有点1.Spring 介绍Spring 是一个开源框架,Spring 是于 2003 年兴起的一个轻量级的 Java 开发框架,由 Rod Johnson 创建。
简单来说,Spring 是一个分层的 JavaSE/EEfull-stack(一站式) 轻量级开源框架。
2.Spring 作用Spring 致力于提供一种方法管理你的业务对象。
Spring 的主要目的是使 JavaEE 易用和促进好编程习惯。
Spring 致力于J2EE 应用的各层的解决方案,而不是仅仅专注于某一层的方案。
可以说 Spring是企业应用开发的“一站式”选择,并贯穿表现层、业务层及持久层。
然而,Spring 并不想取代那些已有的框架,而是与它们无缝地整合。
3.Spring 起源Spring 的出现是为了取代 EJB(Enterprise JavaBean)的臃肿、低效、脱离现实的特点。
传统 J2EE 应用的开发效率低,应用服务器厂商对各种技术的支持并没有真正统一,导致 J2EE的应用没有真正实现 Write Once 及 Run Anywhere 的承诺。
Spring 作为开源的中间件,独立于各种应用服务器,甚至无须应用服务器的支持,也能提供应用服务器的功能,如声明式事务、事务处理等。
Spring笔记

Spring笔记unit01单词释义IOC: 控制翻转factory:工厂scope:指定lazy:懒惰的location:位置properties:键值队constructor:构造器arg:自变量Component:组件Repository:储存Service:服务Example:举例Spring的核心,是管理对象,对象的生存周期和维护对象之间的关系。
一:java Bean(POJO) 实现如下规则的Java对象1:必须有包(package)2:必须有无参构造器。
3:实现序列化接口。
4:有get set方法定义的Bean属性。
String getName()void setName()get方法和set方法定义了Bean属性name 与对象的属性不同比如:EL表达式可以访问Bean属性。
5:toString equals hashCode 有ID基本都重写。
就是有一定约定的java对象。
二:Spring 管理的Java对象1:Spring创建对象的步骤Spring可以访问Bean属性。
IOC 控制翻转1)导入SpringjJar包2)给Spring一个声明,写一个配置文件。
2:Bean的实例化方式1)使用配置文件实例化2)使用静态工厂方法实例化通过某些类中静态方法而获取的方式在该方式calss中指向的是提供静态方法的类,后面是要获取对象的静态方法。
3):使用实例工厂方法实例化三Bean的作用域和生存周期1:Bean的作用域在Bean标签中利用scope属性定义Bean的作用域,严格上讲是Bean创建对象的方式。
singleton 单例对象每一个bean定义对应一个对象实例,默认项,在getBean时,每一次都是同一个对象。
prototype 原型一个bean定义对应多个对象实例,每一次getBean都是相同类型,不同地址的对象。
request在web中一次Http请求与响应对应一个Bean定义的实例。
spring框架学习笔记(全)

spring1.这个框架并不像hibernate或struts那样为了完成特定的功能(操作数据库、处理Http请求),它只是用来优化我们的工程的结果、提升设计、降低耦合度。
2.核心:应用上下文ApplicationContext它就是用来管理工程中无数类型的核心,一般通过xml文件或者注解来管理。
它在启动时载入xml文件或注解中的类、类之间关系的信息,在使用时通过一些方式将管理的类型或对象取出使用。
3.(下载spring.zip,这里面包含了相应的jar包,以及文档)第一个spring的应用:1、导入jar包到工程中2、在src下创建一个叫applicationContext.xml的配置文件<beans><bean id="hello" class="....Hello"></bean><bean id="bye" class=".....Bye"></bean></beans>比如通过上述方式,我们就通过配置文件将,两个类Hello和Bye分别注册管理,其代号分别为hello和bye。
通过这两个代号,我们之后就能取出这个两个类的实例,并进行使用。
(相应的类要Hello,Bye事先自己定义好)3、使用ClassPathXmlApplicationContext来加载上一步中的xml文件,以及获取其中的某个beanApplicationContextctx = newClassPathXmlApplicationContext("applicationContext.xml");加载xml文件中的配置信息,两个类就被spring管理起来了Hello h = (Hello)ctx.getBean("hello");注意:取出bean时可以用多态4.开闭原则:对扩展开放,对修改关闭需求变更时,尽量扩展一个类,不要去修改原来的类;这样可以避免在原来正确的类上产生新的bug。
Spring学习笔记

Spring笔记SPRING笔记 (1)第一章SPRING简介 (3)一、S PRING是什么? (3)1、Spring是一个开源的用于简化采用Java语言开发企业级程序的一个分层的框架 (3)2、分层结构: (3)3、Spring源代码是公开的,但是非标准的 (4)二、S PRING的优点 (4)1、采用J2EE开发存在的问题: (4)2、为什么要使用Spring (4)三、S PRING的组成 (5)第二章SPRING的IOC (5)一、I O C的概念 (5)二、I O C的分类 (6)三、装配介绍 (6)1、Spring容器 (6)2、Spring开发要用到的JAR文件 (7)四、基本装配 (7)1、set方式注入 (7)1)注入简单属性(String和8中基本类型) (7)2)注入对象 (9)3)注入集合类型 (9)2、构造器方式装配(constructor注入) (11)3、比较set和构造注入方式 (11)五、复杂装配 (11)1、工厂方式装配 (11)1)静态工厂方式装配 (11)2)实例工厂方式装配 (12)2、自动装配(Autowring Properties) (12)3、bean的定义的继承 (13)4、bean的依赖关系检查 (13)5、scope (14)六、B EAN的生命周期 (14)1、步骤 (14)2、接口介绍 (15)七、事件处理 (16)1、事件监听原理 (16)2、编程步骤 (16)第三章SPRING的AOP (17)一、AOP的概念 (17)1、什么是AOP (17)2、AOP编程的好处 (17)二、AOP相关概念 (17)三、AOP基本原理 (18)四、S PRING的通知(具体的业务逻辑) (18)1、Spring的通知类型 (18)五、切入点(P OINTCUT) (20)1、pointcut (20)接口Pointcut:org.springframework.aop.Pointcut (20)接口Classfilter:org.springframework.aop.ClassFilter (20)接口MethodMather:org.springframework.aop.MethodMatcher (21)接口Advisor:org.springframework.aop.PointcutAdvisor (21)2、预定义切入点 (22)1)静态切入点: (22)2)动态切入点: (24)3)切入点的交叉与合并: (24)4)Introduction(非重点,严重影响性能,慢5到10倍) (24)六、自动代理 (25)1、使用BeanNameAutoProxyCreator进行自动代理 (25)2、DefaultAdvisorAutoProxyCreator (25)第四章SPRING对持久层的支持 (26)一、S PRING对持久层支持采用的策略: (26)二、S PRING对JDBC的支持 (26)Step 1: 配置数据源 (26)方式一:采用Spring内置的数据源(测试用,性能不高) (26)方式二:采用开源数据库产品如DBCP (27)方式三:直接使用容器提供的数据源(如Tomcat,Weblogic,SunAppServer) (27)Step 2: 配置JdbcTemplate模板类(封装了绝大多数数据库操作) (28)Step 3: 配置DAO (28)Step 4: 配置Service (28)三、S PRING对H IBERNATE的支持 (28)Step1:配置数据源 (28)Step2:配置sessionfactory (28)Step3:配置DAO (29)第五章SPRING对事务的支持 (29)一、事务的概念 (29)二、S PRING的事务机制 (29)三、S PRING事务编程 (30)1、整体介绍 (30)2、Spring声明式事务的编程 (30)3、Spring中事务的使用 (32)四、S PRING事务与EJB事务 (33)第六章框架整合 (33)一、SSH (33)二、S PRING与S TRUTS整合 (34)1、前提: (34)2、加载Spring方式: (34)1)采用ContextLoaderListener来创建ApplicationContext: (34)2)采用ContextLoaderPlugIn来创建ApplicationContext (34)3、集成方案 (34)方案一:通过Spring的ActionSupport类 (34)方式二:通过Spring的DelegatingActionProxy类 (35)方式三:通过Spring的DelegatingRequestProcessor类 (35)三、关于S PRING与EJB (36)第一章Spring简介spring in actionspring 技术手册▲精通Spring2.x企业级开发陈雄华一、Spring是什么?1、Spring是一个开源的用于简化企业级开发的分层框架2、分层结构:接口接口表示层业务层持久层域层1)Presentation layer(表示层)(1) 表示逻辑(生成界面代码)(2) 接收请求(3) 处理业务层抛出的异常(4) 负责规则验证(数据格式,数据非空等)(5) 流程控制2)Service layer(服务层/业务层)(1) 封装业务逻辑处理,并且对外暴露接口(2) 负责事务,安全等服务以及数据访问逻辑3)Persistence layer(持久层)提供透明的数据访问和接口(1) 封装数据访问的逻辑,暴露接口(2) 提供方便的数据访问的方案(查询语言,API,映射机制等)4)Domain layer(域层)域层就是一堆实体的集合,包括实体的关系。
Spring_笔记记录手册

@Repository
public class PhoneDao {
@Autowired //添加此注解spring会自动装载 未getter,setter
private MySQLUtil mySQLUtil;
@SuppressWarnings("deprecation")
public Map ajaxLogin(HttpServletRequest request,
@RequestParam("n") String name,
@RequestParam("p") String pwd){
Map<String, Object> map = new HashMap<String, Object>();
<!-- 静态资源的权限的释放 webcontent目录下 -->
<mvc:resources location="/" mapping="/**" />
/**
* 请求映射:springMVC依赖这个注解去找到执行的方法,方法名并不重要
*
* 位于类上面的请求映射:父地址
但是当加入spring框架,会把java中所有的类(bean)交给spring去管理,
实际上是由spring的配置文件或者叫spring的bean工厂实习管理,这个时
候实现了类对对象控制的权利的反转,交给第三方。从而也能做到将类与
对象的关系解耦,如果需要调用其他类的对象,利用spring的IOC的思想依
//一维数组的传值
@RequestMapping("/add")
Spring课堂笔记讲解
第一篇:Spring概述1、Spring框架内核IoC(Inverse Of Control):反转控制。
AOP(Aspect Oriented Programming):面向切面编程。
2、Spring的体系结构3、Spring开发所需的资源第二篇:Spring核心之IoC(控制反转)1、拷贝核心jar包:2、IoC的概念:3、资源交给Spring管理3.1建立spring的配置文件:a、schema约束文档资料位置b、schema引入后xml没有提示的解决方案c、把DAO实现交给Spring容器(Map结构)管理a、把核心jar包加入到classpath中b、启动Spring容器4、依赖注入:DI(Dependency Injection)5、Spring核心类或接口核心接口:ApplicationContextClassPathXmlApplicationContext:加载位于classpath中的spring配置文件。
FileSystemXmlApplicationContext:加载位于本地磁盘上的spring配置文件。
了解:BeanFactory和ApplicationContext获取Bean的区别6、Bean的初始化●方式一:使用默认的构造方法。
(推荐,重点)注意:Bean要有默认的构造方法●方式二:静态工厂方法初始化(遗留老系统)●方式三:实例工厂方法初始化(遗留老系统)7、bean的存活范围<bean的scope属性>:取值:singlton(默认值):单例的。
在spring容器中实例只有一个。
prototype:非单例的。
用的时候都会创建新的对象。
request:请求范围。
(只能用在web环境下)session:会话范围。
(只能用在web环境下)8、bean的生命周期有关配置注意:9、依赖注入:重点9.1通过构造方法注入9.2setter属性注入:重点9.3p名称空间:9.4SpEL:Spring Expression Language9.5注入数组或集合10、团队开发按模块编写spring配置文件。
spring课堂笔记
Spring day012008-12-24 田天一、Spring FrameWork概述1、企业级应用开发应注意的内容(1)分层:一般意义上分三层·表示层:1)接收客户端请求2)展示结果·业务层1)封装数据访问的逻辑2)事务、安全、调用数据访问接口·持久层1)封装数据访问的逻辑2)给业务层提供透明的数据访问的方式注:透明:提供完整的API(2)基础代码(中间件服务)基础代码:即基础设施,事务、安全、日志、集成、邮件、消息、任务调度…·通用,与具体业务无关·变化少,实现复杂(3)测试(4)如何解决企业级应用:·完全实现所有的代码(包括基础代码)·J2EE(标准的):用来简化企业级应用的包括JSP、Servlet、EJB、JPA、JMS….·Spring(非标准的)2、Spring是一个开源的,用来简化企业级开发复杂性的分层框架。
3、Spring特点:(1)封装了大量企业级服务(简化了调用企业级应用的代码)(2)提供了一个容器(这个容器可以使得容器中的业务主键可以组装在一起,减少模块之间的耦合性,利于测试、维护并且支持AOP编程,为业务组件提供灵活的中间件服务)(3)Spring框架对应用中的每一层均提供了相应的支持或实现,既可以使用Spring全部功能也可以使用其部分功能,或者集成其他子框架(比如struts。
)(4)Spring是个非侵入式的轻量级框架。
·非侵入式:指应用尽量的少的依赖框架的API4、为什么使用Spring?(1)它可以简化企业级应用的开发(2)它可以方便的集成其他的技术框架(3)使用Spring开发的代码易维护、易测试(4)可以不再使用EJB技术来实现企业级应用二、Spring框架的组成1、SpringCore :核心容器(1)BeanFactory 接口实现(2)作用:提供组件的创建(实例化)、装配(依赖关系)、销毁等基本功能。
Spring知识点最全笔记
说明笔记中每个知识点均标有如下标识中的一个或多个,释义如下:理解要求:了解:了解本知识点,明确本知识点的作用理解:理解本知识点所涉及内容的工作原理操作要求:操作:根据本知识点所涉及的内容,进行课堂案例的制作应用:根据本知识点所涉及的内容,进行融会贯通,灵活应用知识点相关:重点:本知识点为本课程重点内容难点:本知识点为本课程难点内容,理解难度较高(难点不一定是重点)目录spring简介【了解】 (3)资源包整理【了解】【应用】 (4)IoC【理解】【应用】【重点】 (5)DI【理解】【应用】【重点】 (7)BeanFactory【了解】 (8)Bean配置(XML)【理解】【应用】【重点】 (9)团队开发【了解】【操作】 (13)Bean配置(注解)【了解】【操作】 (14)Spring整合JUnit【了解】【操作】 (16)AOP简介【理解】【重点】 (17)AOP简介【理解】【重点】 (17)AOP基本概念【理解】【重点】 (18)AOP(XML)【理解】【应用】【重点】 (19)AOP(注解)【理解】【应用】【重点】 (24)CGLIB【理解】【难点】 (25)DAO模板类【了解】 (26)DAO支持抽象类【理解】【操作】 (29)事务管理基本概念【了解】 (31)声明式事务(XML)【理解】【重点】 (34)声明式事务(注解)【理解】【应用】【重点】 (36)SSH整合(XML)【理解】【应用】【重点】 (37)Hibernate模板类【理解】【应用】【重点】 (42)spring简介【了解】1.Spring是一个基于Java的轻量级的J2EE框架基于Java: 底层Java实现轻量级:性能较高,运行速度较快,内存消耗较少重量级组件:EJB、CGIJ2EE应用框架:Spring可以在JEE开发的三层架构的每一层为开发者带来帮助表现层:Servlet/JSP,Struts2,SpringMVC业务层:Bean管理、AOP、事务管理数据层:JDBC,Hibernate,Spring JDBCTemplate域模型层:实体类+DAO服务层:远端调用(webservice)[类似技术RMI+JNDI]Spring提供的每层的服务技术表现层:String MVC业务逻辑层:Bean管理、AOP、事务管理数据层:DAO支持抽象类,DAO模板技术JDBCTemplate2. Spring的发展历程创始人:Rod JohnsonExpert One-to-One J2EE Design and Development(2002)阐述了J2EE使用EJB开发设计的优点及解决方案Expert One-to-One J2EE Development without EJB(2004)阐述了J2EE开发过程中不使用EJB的解决方式(Spring雏形)3.Spring核心技术IOC:控制反转AOP:面向切面编程/面向方面编程4.Spring是一个超级的“黏合平台”,将很多技术黏合在一起,形成一个整体,使每个组件发挥其最大功效资源包整理【了解】【应用】1.本课程基于Spring3.2.0进行讲解2.下载地址:/release/org/springframework/spring/说明:通过Maven部署资源从仓库获取(后期课程)3.资源文件Spring资源包下spring-framework-3.2.0.RELEASE-dist.zipSpring依赖资源包spring-framework-3.0.2.RELEASE-dependencies.zip4.资源包目录层次结构docs:API帮助文档与官方手册libs:开发使用的jar包schema:开发使用的XML约束文档源文件5.开发jar包核心jar(4个)spring-beans-3.2.0.RELEASE.jarspring-context-3.2.0.RELEASE.jarspring-core-3.2.0.RELEASE.jarspring-expression-3.2.0.RELEASE.jar日志相关jar(2个)commons-logging-1.1.1.jarcommons-logging日志整合,与slf4j类似,由apache提供log4j-1.2.15.jarIoC【理解】【应用】【重点】1.IoC(Inversion of Control)控制反转A:控制:控制的双方是什么?谁控制谁?主控方:Spring被控方:应用程序所使用的资源(原始)应用程序控制自己执行操作需要使用的外部资源(Spring)Spring控制整个程序中所需要使用的外部资源B.反转:什么是反转?反转什么?正向:应用程序直接调用资源反向:应用程序依赖Spring为其提供资源反转的是资源的控制权应用程序由主动调用资源,变为被动的等待Spring提供资源C.有什么好处?正向缺点:应用程序控制的资源分布在程序的每一个地方反向的优点:所有的资源都在Spring中,便于管理总结: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图示检查一下流程。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
.Spring_day01
.Spring课程安排
第一天spring概念和ioc入门(IOC操作配置文件)第二天spring的ioc操作(注解)和aop概念
第三天jdbcTemplate和spring管理事物
第四天ssh框架整合开发
今天内容介绍
1.spring概念
spring核心两部分
(2)spring一站式框架
(3)spring 版本
2.spring的入门
(1)ioc底层原理
(2)ioc入门案例
(3)解决配置文件没有提示
3、spring的bena管理(XML配置文件)
(1)bean实例化三种方式
(2)bean标签常用属性
(3)属性注入方式介绍
(4)spring注入属性(有参数构造和set方法)(5)spring注入对象类型属性(重点)
(6)p名称空间注入
(7)spring注入复杂数据
4.ioc和di区别
5.spring整合wed项目原理
(1)ServletContext对象
(2)监听器
.Spring概念
开源的轻量级框架
Spring核心主要两部分:
(1)aop:面向切面变成,扩展功不是修改源代码实现
(2)ioc:控制反转,
--比如有一个类,在类里面有方法(不是静态的方法),调用类里面的方法,创建类的对象,使用对象调用方法,创建类对象的过程,需要new出来对象(之前的方法)
--把对象的创建不是通过new的方式实现,而是经过spring配置创建类对象(ioc的方法)
Spring是一站式框架
(1)spring在javaee三层结构中,每一层都提供不同的解决技术
--web层:springMVC
--service层:spring的ioc
--dao层:spring的jdbcTemplate
4.spring版本
(1)hibernate5.x
(2)spring4.x
.Spring的ioc操作
1.把对象的创建交给spring 进行管理
2.Ioc操作两部分:
(1)ioc的配置文件方法
(2)ioc的注解方式
.ioc底层原理
1.ioc底层原理实用技术
(1)XML配置文件
(2)Dom4j解决xml
(3)工厂设计模式
(4)反射
2.画图分析ioc实现原理
.Ioc入门案例
第一步导入jar包
(1)解压资料zip文件
JAR特点:每个都有三个JAR包
(2)做spring最基本功能时候,导入四个核心的jar包就可以了
(3)导入支持日志输出的jar包
第二步创建类,在类中里面创建方法
(原始方法这么做)
第三步创建spring配置文件,配置创建类
(1)spring核心配置文件名称和位置不是固定的
--建议放到src下面,官方建议取名为applicationContext.xml (2)引入schema约束
(路径)
(3)配置对象
第四步写代码测试对象创建
.配置文件没有提示问题
1.spring引入schema约束,把约束文件引入到eclipse中(1)辅助约束路径
.Spring的bean管理(xml方式)
.Bean实例化的方式
1.在spring里面通过配置文件创建对象
2.bean实例化三种方式实现
第一种使用类的无参数构造创建(重点)
第二种使用静态工厂创建
(1)创建静态的方法,返回类的对象
建一个Bean2类,再建一个工厂类Bean2Factory类
注意:class里面写Bean2Factory的全路径,factory-method:表示工厂方法(方法)
第三种使用实例工厂创建
(1)创建不是静态的方法,返回类对象
建一个Bean3类,再建一个工厂类Bean3Factory类
注意:class里面写Bean3Factory的全路径,factory-method:表示工厂方法(方法)
.Bean标签常用属性
(1)id属性:起名称,可以任意命名
--id属性值,不能包含特殊符号
--根据值得到配置对象
(2)class属性:创建对象所在类的全路径
(3)name属性:功能和id属性一样,id属性值不能包含特殊符号,但是在name值里面可以包含特殊符号
(4)scope属性:Bean的作用范围
--singleton :默认值,单例的
--prototype :多例的
--request :wed项目中,spring创建一个bean的对象,将对象存入到request域中.
--session : wed项目中,session创建一个bean的对象,将对象存入到session域中.
--globalSession:创建对象,将对象存入到globalSession里面.
.属性的注入
1.创建对象时候,向类里面属性里面设置值
2.属性注入的方式介绍(三种方式)
(1)使用set方法注入
(2)有参数构造注入
(2)使用接口注入
3.在spring框架里面,支持前两种方式
(1)使用set方法注入(重点)
(2)有参数构造注入
.有参数构造注入
<constructor-arg name=“属性名” value=“属性值”>
. 使用set方法注入(重点)
.注入对象类型属性(重点)例:1.创建service类和dao类
(1)在service得到dao对象
2.具体实现过程
(1)在service里面把dao作为类型属性
(2)生成dao类型的属性的set方法(在add()方法里调用UserDao里面的add方法)
(3).配置文件注入关系(ref表示注入的对象)
测试结果如下:
.P名称空间注入
.注入复杂类型属性
1.数组(表示数组中有多个值用value表示)
2.List集合(表示集合中有多个值用value表示)
3.Map集合(表示集合中有多个用key和value表示)
4.Properties类型
.Ioc和DI区别
(1)IOC:控制反转,把对象创建交给spring进行配置
(2)DI:依赖注入,向类里面的属性中设置值
(3)关系:依赖注入不能单独存在,需要在ioc基础之上完成操作.spring整合web项目原理
1.加载spring核心配置文件
(1)new对象,功能可以实现,效率很低
2.实现思想:把加载配置文件和创建对象过程,在服务起启动时候完成
3.实现原理
(1)ServletContext对象
(2)监听器
(3)集体使用:
--在服务器启动的时候,为每个项目创建一个ServletContext对象
--在ServletContext对象创建的时候,使用监听器可以监听到ServletContext对象在什么时候创建
--加载spring配置文件,把配置文件配置对象创建
--把创建出来的对象放到ServletContext域对象里面(setAttribute方法)
--获取对象时候,到ServletContext域得到(getAttribute方法)。