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定义的实例。

sission

在web中一次会话对应一个Bean定义的实例

2:Bean的生命周期

1)指定初始化回调方法

init()

2)指定销毁回调方法

destroy()

仅适用于singleton 单例对象式

AbstractApplicationContext c=(AbstractApplicationContext)ctx

c.close();

销毁必须要把ApplicationCotext类型强转成AbstrcatApplicationContext类型才能调用close方法。

3:Bean的延迟实例化

1)ApplicationContext在默认情况下会将singleton单例对象在启动容器是创建。

4:指定Bean依赖关系

1)

四IOC

具有相同生命周期的关系,叫做组成关系。有必然关系但没有共同生命周期,叫依赖关系。有关系,但不一定是必然关系叫做关联关系。

Spring提供了注入DI/IOC功能,解决维护对象的关系。解决了耦合性问题

紧耦合与松耦合性

紧耦合:代码写死了,对象关系不能改变。

松耦合:对象的关系,可以后期更改,无需变更编码

1:IOC概念

IoC被译为控制反转,管理对象和对象的关系(创建Bean实例管理Bean周期) 2:DI注入方式

依赖注入,

1)setter注入

bean标签中property属性设置该bean的set方法。

2)构造器注入。

调用有参数构造器注入,用bean标签的constructor-arg

3:Spring支持的多种数据类型的注入

1)注入类型

(1)基本类型注入

将基本类型数据注入到指定bean中

(2)引用类型注入

将引用类型对象注入到指定的Bean中

(3) 集合注入

a:在Bean标签中定义注入Bean属性,而属性是集合,就要在集合中添加元素,在注入到Bean属性中。

类属性赋值

b:引用方式的集合注入

把整个集合当作一个javaBean,添加到另一个Bean中,在这里list看作一个独立的javaBean,可以在java类中通过getBean获取到

该list引用对象。

类属性赋值

(4)表达式注入

a: 用于读取一个Bean的属性,注入给另外一个Bean,可以读基本类型,也可以读取集合

读取list/数组

#{nameList[0]}

读取map

#{map['key']} #{map.key}

读取properties

#{props['key']} #{props.key}

b:利用properties读取硬盘文件内容,将每一个键值队内容存到properties中,所以可以看作引用方式的集合或者javaBean,但增加了一个

特殊的功能,location指向一个properties文件的位置。读取并存到该

properties中。

4:自动装配

1)ByName:按Id匹配

Spring会自动的将Bean属性和Bean的Id按名字匹配,如过匹配上,就会自动调用set方法进行注入。

2)ByType:按类型注入

会在容器中查找与Bean属性一致的对象类型,如果类型一致,就会调用set方法注入属性,如果有同类型的Bean对象,注入失败抛异常。

3)constructor

查找与Bean属性一致的对象类型,如果类型一致,会调用构造器注入。

4)autodetect

会自动匹配类型,当类是无参构造,会自动掉用ByType用set注入.

unit 03

命名空间

一软件的结构

软件的经典结构:3层架构

表现层:

软件的界面,用来呈现数据,与用户交互。Spring MVC 登录框

C:Controller控制器Servlet

V:View 视图JSP

M:Model 模型业务数据和业务处理逻辑。

业务层:

封装了软件的核心功能(业务逻辑功能),UserService

数据层:

提供业务实体的CRUD (增删改查),也被称之为持久化层

Spring可以将软件的各个层面模块进行集成管理。

当定义实体类时,通常属性类型为基本类型的,要使用包装类,因为向数据库插入数据时

数据库值可以表示空,但是基本类型不能表示空。

二基于注解的组建扫描

指定一个包路径,Spring会自动扫描该包和及其子包所有组件类可以避免大量的XML 配置bean的定义。

在XML配置中指定要扫描的包路径,容器在启动时会自动扫描指定的包和包中的所有子包,如果找到在类

前追加注解标记的类,会自动将类加载到容器中,Id为类名,并将首字母小写,

注解声明Bean和bean标记都在同一个Spring容器中,可以相互注入,调用,第三方提供的Jar

只能使用标记声明Bean

1:如何使用组建扫描

step1:在XML配置中指定扫描路径

step2:在组件类定义前面加上注解标记

自动扫描加载到容器,id为类名首字母小写。

2:所有注解标记

@Component

@Named

@Service

@Repostroy

@Controller

3:给自动扫描组件命名

在注解标记后加小括号,并在括号内命名。

4:指定组件的作用域

在注解标记后的小括号中填写的作用域,就会指定Bean属性的作用域,默认为单例singleton.

5:bean的生存周期,初始化和销毁回调的控制

在方法前加bean的生存周期注解,当给某个类追加注解后会在该包中每个bean 属性实例化的同时

初始化一次init方法。

6:指定依赖注入关系

@Resource

@Autowired/@Qualifier

@Inject/@Named

可以是对象属性注入,也可以是Bean属性注入。

1)表达式注入

@Value(Spring表达式)

在对象属性前加该注解标记会将Spring表达式的值注入到对象属性中。

三Spring Web MVC的核心组件

Spring Web MVC是Spring框架为了更快速,简洁于传统的Servlet MVC结构,从而开发出的

以Servlet为核心的框架。该框架提供的API封装了Web开发时常用的功能,其中五个为核心

组件功能,也是最小开发环境。,提供了VC。

1:DispatcherServlet

请求入口

浏览器把请求发送给Spring的前端控制器,由DispatcherServlet处理。

MVC的控制器会执行四个步骤。

2:HandlerMapping

请求派发

控制器将浏览器发送的请求经过DispacherServlet处理后将处理后的请求地址

交给HandlerMapping分配,找到该地址相应的Controller组件处理请求。

3:Controller

封装业务处理,返回结果和视图

Controller中封装了对请求的处理,并将处理结果以视图的方式返回,交给控制器。

4:ModelAndView

数据和视图

ModleAndView中封装了数据库连接,sql和视图等数据,Controller在处理业务时

会从ModelAndView中取出数据并处理出结果和视图返回给控制器。

5:ViewResolver

视图

控制器接收到ModelAndView后调用ViewResolver组件,定位到指定的View(JSP)

生成响应界面结果发送会客户端。

Unit04

一Spring MVC 配置和安装

导入jar包

step1:配置单一请求入口控制器Servlet web.xml

step2:配置请求转发处理Bean HanlerMapping spring-mvc.xml 配置为Spring Bean

step3:编写控制器类处理业务功能

step4:配置视图处理器Bean spring-mvc.xml

step5: JSP 显示Hello

二注解版Spring MVC

1:开发控制器

@Controller

@RequestMapping

2:配置Spring XML文件

三接受请求参数值

1:Request 可以获取任意的Http协议数据

Http Header

IP

URL

Cookies

2:使用控制器方法,注解参数方便

只能处理表单提交参数

3:FormBean

适合处理大量表单数据,同样也只能处理表单提交参数。

表单中的数据传递给Controller中的业务方法,传值的工作是由Spring完成的,

实际上Spring是不知道你要把值传给哪个参数,Spring是通过遍历每一个参数,

判断表单中的数据是否能匹配上参数,不论哪个,只要匹配上都会给赋值。

四向控制器向View传递消息

unit 05

一路径

1:web路径(浏览器端指向的路径)

/根对应tomcat应用服务器

/spring04 对应web项目名,这里是Spring04项目

/spring04/ 对应web应用名

2:硬盘路径

3:web应用程序路径

/根相对于部署文件夹的路径

/应用程序的根目录

WEB-INF文件夹用户不能直接访问,需要给用户看到资源不要放到WEB-INF下。

JSP 组件纯视图组件当不给jsp数据jsp无意义的建议部署到/WEB-INF下。

4:使用jstl标签的url属性

jstl的url属性会指定一个以服务器中当前应用的应用名为根路径的地址,所以当使用绝对

路径的情况下,可以使用该属性,而且会自动生成根目录。

二如何从控制器向界面传递数据

1:将业务处理结果在界面显示

1)request.setAttrbute()

session.setAttrbute()

application.setAttrbute()

2:重定向视图

1)RedirectView view =new RedirectView("login.form");

return new ModelAndView(view);

2)return "redirct:login.form"

重定向时如果直接重定向到JSP会产生HandlerMapping,viewResolver问题,

地址会从绝对路径开始,但是在ViewResoler中定义的地址无效,所以会找不到

指定的Jsp,如果要重定向到jsp必须使用DispatcherServlet,并且将jsp

封装到Contrller中。

三中文编码

1:在jsp表单中使用的是post请求方式时,可以在web.xml文件中配置编码方式

2:或者在Contrller类中使用Request.setCharacterEncoding("utf-8")方法

设置编码。

encodingFilter

org.springframework.web.filter.CharacterEncodingFilter

encoding

UTF-8

encodingFilter

*.form

实质上就是使用了Servlet的Filter拦截器,在拦截过程中设置初始化参数,指定编码为UTF-8

四拦截器

在SpringMVC中拦截器无法拦截请求,而是在Spring容器中实现拦截功能。

1:拦截器的使用

拦截器必须实现HandlerInterceptor接口,实现该接口中三个方法。

分别是拦截的时机。

1)preHandle()

在Controller处理器执行前执行。该方法会返回以个Boolean值

true,会继续往下执行,flase,会短路后面所有方法。使用快捷键

添加方法时,注意:返回值默认为flase。

2)postHandle()

在Controller处理器执行完将视图返回到容器的HandlerMapping

时。

3)afterHandle()

在请求处理完毕调用视图前执行。

问题

1:在转发和重定向时地址问题

从Controller转发到JSP时会有父路径,为什么父路径不在客户端查找jsp路径内。

unit 06

一文件上载

1使用spring文件上载

1)导入包

2)配置Spring的支持Bean

3)定义文件上载表单

4)在控制器中使用文件上载参数

二Spring JDBC 支持API

解决了软件的数据持久化层的一些常见问题

1:如何使用SpringJDBC

1):导入包

(1)Spring核心包

(2)JDBC Driver

(3)c3p0数据库连接池/dbcp数据库连接池

管理数据库连接

(4)导入Spring JDBC 包

2)配置数据源

3)

三Spring异常处理

main/error

三Spring 事务处理

Spring使用配置声明式事务

器原理是SpringAOP

使用注解自动扫描事务管理组件,需要在Spring XML文件中定义

class="org.springframework.jdbc.datasource.DataSourceTransactionManager">

transaction-manager="txManager"

proxy-target-class="true"/>

spring_day01上课笔记

.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实现原理

笔记-传智播客springMVC公开课

SpringMVC公开课笔记 高浩阳 2014-11-29

目录 1SpringMVC框架 (2) 1.1SpringMVC框架 (2) 1.2SpringMVC组件总结 (2) 2开发SpringMVC的第一个程序 (3) 2.1准备环境 (3) 2.2开发SpringMVC的第一个程序 (3) 2.2.1创建Java Web工程 (3) 2.2.2向工程中填充SpringMVC的jar包 (3) 2.2.3配置前端控制器 (4) 2.2.4创建一个配置文件springmvc.xml(名称不固定) (7) 2.2.5配置处理器映射器HandlerMapping (8) 2.2.6配置处理器适配器HandlerAdapter (9) 2.2.7配置视图解析器ViewResolver (12) 2.2.8编写Handler (13) 2.2.9在springmvc.xml中配置helloAction.java (16) 2.2.10将工程部署到tomcat,启动tomcat (17) 2.3小结: (19) 3注解开发第一个例子 (19) 3.1新建工程SpringMVCTest02 (19) 3.2在springmvc.xml中配置 (20) 3.3开发action (21) 3.4配置action (22) 3.5部署工程,运行Tomcat (24) 4注解开发学生信息管理功能 (24) 5SpringMVC特点 (33) 6和Jquery easyui 整合完成数据列表 (33)

1SpringMVC框架 1.1SpringMVC框架 1. 用户发起请求request(比如请求链接叫http://www.xxx/user.action) 注册用户信息。 2. SpringMVC通过DispatcherServlet接受请求。 DispatcherServlet是一个前端控制器(想到struts2在web.xml配置一个filter前端控制器)相当于控制器Controller 3. DispatcherServlet调用HandlerMapping(处理器映射器)根据user.action找到处理器(Handler) HandlerMapping负责分局user.action这个链接找到Handler,根据xml配置或注解配置找到Handler 4. HandlerMapping将找到的Handler给DispatcherServlet前端控制器 5. DispatcherServlet前端控制器调用HandlerAdapter(处理器适配器)去执行Handler 处理器适配器负责执行Handler 6. Handler将处理结果返回给HandlerAdapter(处理器适配器) 处理结果就是ModelAndView(封装了模型数据和视图) 7. DispatcherServlet调用视图解析器ViewResolver去解析视图 8. 将View给用户相应 1.2SpringMVC组件总结 1. DispatcherServlet前端控制器(不需要程序员写) 负责框架调度,相当于中央处理器 基本controller控制器功能: 接收用户request请求和给用户response响应 2. HandlerMapping(处理器映射器)(不需要程序员写) 负责根据action的连接找到Handler处理器(理解成写的action)

springMVC 个人学习笔记

第一、二课 所需jar包,本次使用版本是spring3.2.3 Ps:spring的文件用上面的基本够了,但是整个过程可能需要很多的commons 软件,如fileupload,io,lang包 SpringMVC demo案例 1、加入相关jar包 2、web.xml配置 springMVC org.springframework.web.servlet.DispatcherServlet 1 springMVC /这里一定要写成这样,如果写成 /* 输入地址总是No mapping found for HTTP request with URI Ps:springMVC 也有个默认的xml配置文件,类似struts2的struts.xml 该文件可以指定,即上面紫色注释掉部分。 默认路径是/WEB-INF/springMVC-servlet.xml

3、springMVC-servlet.xml 4、编写controller 该controller类似struts2的action,编写的controller 要实现org.springframework.web.servlet.mvc.Controller接口 第三课 springMVC的传值 通过modelandview 传值 1、

Spring笔记

chapter01 Spring简介 一、Spring是什么? 在了解Spring之前,我们来了解在Java EE框架下企业级开发采用EJB框架的一些不足: (1) EJB太笨重,而且Entity EJB不能脱离容器 (2) 企业级服务使用困难 (3) 开发的复杂度太高 (4) 侵入式方案,EJB要使用特定的接口 因此,Spring应运而生。 Spring是一个开源的用于简化采用Java语言开发企业级程序的一个分层的框架。 关于程序的分层结构: 1、Presentation layer(表示层) (1) 表示逻辑(生成界面代码) (2) 接收请求 (3) 处理业务层抛出的异常 (4) 负责规则验证(数据格式,数据非空等) (5) 流程控制 2、Service layer(服务层/业务层) (1) 封装业务逻辑处理,并且对外暴露接口 (2) 负责事务,安全等服务 3、Persistence layer(持久层) (1) 封装数据访问的逻辑,暴露接口 (2) 提供方便的数据访问的方案(查询语言,API,映射机制等) Domain layer(域层) (1) 业务对象以及业务关系的表示 (2) 处理简单的业务逻辑 (3) 域层的对象可以穿越表示层,业务层,持久层 二、Spring的作用 为什么要使用Spring? (1) 简化企业级开发 ①封装了大部分的企业级服务,提供了更好的访问这些服务的方式 ②提供了IOC,AOP功能的容器,方便编程 (2) 遵循Spring框架的应用程序,一定是设计良好的,针对接口编程,这样就简化了企业级程序的设计。 (3) Spring的组成 ① Spring Core:核心容器,BeanFactory提供了组件生命周期的管理,组件的创建,装配,销毁等功能 SpringContext:ApplicationContext,扩展核心容器,提供事件处理、国际化等功能。它提供了一些企业级服务的功能,提供了JNDI,EJB,RMI的支持。 ② Spring AOP:提供切面支持 ③ Spring DAO:提供事务支持,JDBC,DAO支持 ④ Spring ORM:对流行的O/R Mapping封装或支持 ⑤ Spring Web:提供Web应用上下文,对Web开发提供功能上的支持,如请求,表单,异

springboot-笔记

1.今日大纲 1、了解Spring的发展 2、掌握Spring的java配置方式 3、学习Spring Boot 4、使用Spring Boot来改造购物车系统 访问 https://www.360docs.net/doc/a615312308.html, 了解更多 2.Spring的发展 2.1.Spring1.x 时代 在Spring1.x时代,都是通过xml文件配置bean,随着项目的不断扩大,需要将xml配置分放到不同的配置文件中,需要频繁的在java类和xml配置文件中切换。 2.2.Spring2.x时代 随着JDK 1.5带来的注解支持,Spring2.x可以使用注解对Bean进行申明和注入,大大的减少了xml配置文件,同时也大大简化了项目的开发。 那么,问题来了,究竟是应该使用xml还是注解呢? 最佳实践: 1、应用的基本配置用xml,比如:数据源、资源文件等; 2、业务开发用注解,比如:Service中注入bean等; 2.3.Spring3.x到Spring4.x 从Spring3.x开始提供了Java配置方式,使用Java配置方式可以更好的理解你配置的Bean,现在我们就处于这个时代,并且Spring4.x和Spring boot都推荐使用java配置的方式。 3.Spring的Java配置方式 Java配置是Spring4.x推荐的配置方式,可以完全替代xml配置。

3.1.@Configuration 和 @Bean Spring的Java配置方式是通过 @Configuration 和 @Bean 这两个注解实现的: 1、@Configuration 作用于类上,相当于一个xml配置文件; 2、@Bean 作用于方法上,相当于xml配置中的; 3.2.示例 该示例演示了通过Java配置的方式进行配置Spring,并且实现了Spring IOC功能。 3.2.1.创建工程以及导入依赖 4.0.0 cn.itcast.springboot itcast-springboot 1.0.0-SNAPSHOT war org.springframework spring-webmvc 4.3.7.RELEASE com.jolbox bonecp-spring 0.8.0.RELEASE ${project.artifactId} org.apache.maven.plugins maven-resources-plugin

韩顺平Spring笔记

①spring是什么? struts 是 web 框架 (jsp/action/actionfrom) hibernate 是 orm框架,处于持久层. spring 是容器框架,用于配置bean,并维护bean之间关系的框架 ?spring中有一个非常概念: bean (是java中的任何一种对象javabean/service/action/数据源./dao, ioc(控制反转inverse of control) di( dependency injection 依赖注入) ?画一个框架图 快速入门 开发一个spring项目. 1.引入spring的开发包(最小配置该包把常用的jar都包括, 还要写日志包 2.创建spring的一个核心文件 , [hibernate有核心 struts核心文件 ], 该文件一般 放在src目录下,该文件中引入 xsd文件: 可以从给出的案例中拷贝一份. 3.配置bean

韩顺平 4.在中,我们怎么使用 到spring 的applicationContext对象(容器对象) ApplicationContext ac=new ClassPathXmlApplicationContext(""); UserService us=(UserService) ("userService"); (); 5.细节讨论? 传统的方法和使用spring的方法 5.1使用spring ,没有new 对象,我们把创建对象的任务交给spring框架 5.2spring的运行原理图: 我们再看spring 对上面案例总结: spring实际上是一个容器框架,可以配置各种bean(action/service/domain/dao),并且可以维护bean与bean的关系,当我们需要使用某个bean的时候,我们可以getBean(id),使用即可. ioc是什么? 答:ioc(inverse of controll ) 控制反转: 所谓控制反转就是把创建对象(bean),和维护对象(bean)的关系的权利从程序中转移到spring的容器,而程序本身不再维护. DI是什么? 答: di(dependency injection) 依赖注入: 实际上di和ioc是同一个概念,spring设计者认为di更准确表示spring核心技术

spring学习笔记.doc

spring 学习笔记 【篇一:spring 学习笔记】 4.主要内容: 从下向上看spring 的主要内容: test :spring 支持junit 单元测试 核心容器(ioc) :bean(bean 工厂,创建对象)、core( 一切的基础)、context( 上下文)、spel(spring 的表达式语言); aop :aop 、aspects 对数据访问的支持:jdbc 、orm 、transaction 、jms(java 邮件服务) 对web 的支持:spring mvc 5.ioc--inversion of control 控制反转: 首先引用一篇文章的内容,简单了解一下dao 和service 层,controller 层、view 层(),另一篇文章对spring ioc 设计思想的总 结比较全面和通俗易懂; 第一步:定义dao 接口userdao package cn.sxt.dao;// 降低耦合性public interface userdao { public void getuser();} 第二步:定义dao 接口的实现类userdaomysqlimpl 和userdaooracleimpl userdaomysqlimpl: package cn.sxt.dao.impl;import https://www.360docs.net/doc/a615312308.html,erdao;public class userdaomysqlimpl implements userdao { @override public void getuser(){ system.out.println(mysql 获取用户数 据);}userdaooracleimpl: package cn.sxt.dao.impl;import https://www.360docs.net/doc/a615312308.html,erdao;public class userdaomysqlimpl implements userdao { @override public void getuser(){ system.out.println(mysql 获取用户数据);} 第三步:定义service 层接口userservice ,实现具体的业务 package cn.sxt.service;public interface userservice { public void getuser();} 第四步: 定义service 接口的实现类 userserviceimpl,service 层的业务实现,具体要调用到已定义的 dao 层的接口 我们传统的javase 设计思想,代码是这样组织的:我们直接在对象内部(应用程序本身)通过new 进行创建对象,是程序主动去创建依赖对象

spring笔记

struts:web层,比较简单(ValueStack值栈,拦截器) hibernate:dao层,知识点杂 spring:service层,重要,讲多少用多少--> 【了解】 spring day01:基础(IoC控制反转、DI依赖注入)、整合Junit、整合web spring day02:AOP切面编程、JdbcTemplate spring day03:事务管理、SSH整合 1spring框架概述 1.1 什么是spring ●Spring是一个开源框架,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对比,依赖资源少,销毁的资源少。 ●分层:一站式,每一个层都提供的解决方案 web层:struts,spring-MVC service层:spring dao层:hibernate,mybatis ,jdbcTemplate --> spring-data

spring学习用笔记spring_day02

spring学习用笔记spring_day02 Spring_day02 2007-12-05 星期三 一 , IOC 补充: 1, 继承关系: string1 20 30 得到的bean不想用单例时, 在bean标签上加 Scope=singleton/prototype 二, bean的生命周期(组件的装配过程): 初始化(调用默认的构造器实例化,但是属性还没有赋值) ---> 装配(设置依赖注入,给bean设置属性值) ---> BeanNameAware 接口

方法: setBeanName(); 如果bean实现了这个接口, 便会传递bean的名字给bean; ---> BeanFactoryAware: setBeanFactory() ; 传递BeanFactory 给bean; ---> ApplicationContextAware: setApplicationContext(); 传递ApplicationContext给bean; ---> BeanPostProcessor: 后处理bean;两个方法,postProcessAfterInitialization(Object bean, String beanName); Object postProcessBeforeInitialization(Object bean, String beanName) 容器可以借助后处理bean对所有的其他bean作拦截, 相当于扩充了容器的功能; SomeBean实现了这个接口: 会对其他bean: A, B, C 的初始化或其他方法做拦截处理; ---> common init() ---> InitializingBean : void afterPropertiesSet() ; 初始化之后设置属性 初始化:<1>. bean实现InitializingBean接口; <2>. 在配制文件中配置init-method="初始化方法", 这个初始化方法定义在bean类中方法名不做要求; ---> BeanPostProcessor: postProcessAfterInitialization ---> common destroy() ---> DisposableBean: destroy() ; 销毁之前;

黑马程序员:三大框架11天笔记全之Spring-day11笔记

黑马程序员:三大框架Spring-day11笔记Spring事务管理机制 Spring事务管理的四个优点: 1.提供一致的对于不同的事务管理的API 2.支持声明式事务管理(重点) 3.编程事务管理(在开发中应用比较少) 4.优秀的整合与Spring的数据访问 我们重点讲解spring的事务管理的相关的API,还有声明式事务管理Spring事务管理主要提供了三个接口来完成 https://www.360docs.net/doc/a615312308.html,.springframework.transaction.PlatformTransactionManager 这是一个事务管理器,可以来选择相关的平台(jdbc hibernate jpa…) 2.TransactionDefinition 它定义事务的一些相关信息例如隔离传播超时只读 3.TransactionStatus 它主要描述事务具体的运行状态 1.1.1PlatformTransactionManager 平台事务管理器 在不同的持久化层解决技术它的事务代码不一样。 JDBC开发 Connection con=……; con.setAutoCommit(false);//开启事务 con.rollback(); https://www.360docs.net/doc/a615312308.html,mit(); Hibernate开发 Session session=….; Transaction t=session.beginTransaction(); https://www.360docs.net/doc/a615312308.html,mit(); t.rollback();

PlatformTransactionManager接口API DataSourceTransactionManager 主要针对于JdbcTemplate开发MyBatis开发HibernateTransactionManasger主要针对于Hibernate开发JpaTransactionManager 主要针对于JPA开发。 1.1.2TransactionDefinition 它描述的是事务的定义信息。 在TransactionDefinition中定义了大量的常量

spring总结笔记

一:Spring第一天 1:导入spring相关的jar包 (1)spring-framework-3.0.2.RELEASE(核心包) 写法:org.springframework…….. (2)spring第三方依赖包 spring-framework-3.0.2.RELEASE-dependencies.zip 写法:https://www.360docs.net/doc/a615312308.html,.apache.log4j-sources-1.2.15.jar(第三方包) Spring开发需要哪些jar包 2:spring的核心容器 默认的写法:applicationContext.xml(默认文件放置到src下,但是也可以更改路径) 可以自定义命名:beans.xml 在beans.xml中引入约束的文件

如果你发现在beans.xml中不能显示对应的提示:此时xsd的文件没有被加载到myeclipse中 3:spring加载容器的方式 核心对象: 4:控制反转(IOC) (1)概念:所谓控制反转就是应用本身不负责依赖对象的创建及维护,依赖对象的创建及维护是由外部容器负责的。这样控制权就由应用转移到了外部容器,控制权的转移就是所谓反转,目的是为了获得更好的扩展性和良好的可维护性。 (2)代码: 存在一个Boy对象: public class Boy { public void display(){ System.out.println("我 +是一个优秀的Boy!"); } }

spring框架学习笔记(全)

spring 1.这个框架并不像hibernate或struts那样为了完成特定的 功能(操作数据库、处理Http请求),它只是用来优化我们的工程的结果、提升设计、降低耦合度。 2.核心: 应用上下文ApplicationContext它就是用来管理工程 中无数类型的核心,一般通过xml文件或者注解来管理。它在启动时载入xml文件或注解中的类、类之间关系的信息,在使用时通过一些方式将管理的类型或对象取出使用。 3.(下载spring.zip,这里面包含了相应的jar包,以及文档) 第一个spring的应用: 1、导入jar包到工程中 2、在src下创建一个叫applicationContext.xml的配置文件 比如通过上述方式,我们就通过配置文件将,两个类Hello和Bye分别注册管理,其代号分别为hello和bye。

通过这两个代号,我们之后就能取出这个两个类的实例,并进行使用。(相应的类要Hello,Bye事先自己定义好) 3、使用ClassPathXmlApplicationContext来加载上一 步中的xml文件,以及获取其中的某个bean ApplicationContextctx = new ClassPathXmlApplicationContext("applicationContext.xml"); 加载xml文件中的配置信息,两个类就被spring管理起来了Hello h = (Hello)ctx.getBean("hello"); 注意:取出bean时可以用多态 4.开闭原则: 对扩展开放,对修改关闭 需求变更时,尽量扩展一个类,不要去修改原来的类; 这样可以避免在原来正确的类上产生新的bug。 5.spring不但可以动态创建类的实例,也可以通过配置文件动态初始化实例的属性值 1、私有属性要有对应的setter方法 2、在bean中定义property属性,对应类中私有属性, *可以通过配置进行属性的自动设置。 在猫的bean中注册name属性,值为TOM

马士兵Spring课堂笔记(超级详细版)

课程内容---…详细 包括整合struts hibernate ------------------------------------ 1.面向接口(抽象)编程的概念与好处 2.IOC/DI的概念与好处 a)inversion of control b)dependency injection 3.AOP的概念与好处 4.Spring简介 5.Spring应用IOC/DI(重要) a)xml b)annotation 6.Spring应用AOP(重要) a)xml b)annotation 7.Struts2.1.6 + Spring2.5.6 + Hibernate3.3.2整合(重要) a)opensessionInviewfilter(记住,解决什么问题,怎么解决) 8.Spring JDBC 面向接口编程…(面向抽象编程) 1.场景:用户添加 2.Spring_0100_AbstractOrientedProgramming a)不是AOP:Aspect Oriented Programming 3.好处:灵活 什么是IOC(DI),,,有什么好处 1.把自己new的东西改为由容器提供 a)初始化具体值 b)装配 - (class 是个类。Id就等于构造了一个对象) (把u这个对象注入到UserService这个类的一个userDAO的一个属性里) - 2.好处:灵活装配

springmvc框架基础知识学习笔记

第一天:springmvc基础知识 什么是springmvc? springmvc框架原理(掌握) 前端控制器、处理器映射器、处理器适配器、视图解析器 springmvc入门程序 目的:对前端控制器、处理器映射器、处理器适配器、视图解析器 学习 非注解的处理器映射器、处理器适配器 注解的处理器映射器、处理器适配器(掌握) springmvc和mybatis整合(掌握) springmvc注解开发: 常用的注解学习 参数绑定(简单类型、pojo、集合类型) 自定义参数绑定(掌握) spring和structs2区别 一、springmvc基础知识 1 springmvc框架 1.1什么是springmvc springmvc是spring框架的一个模块,两者无需通过中间整合进行整合springmvc是一个基于mvc的web框架。

1.2mvc在b/s系统下的应用 mvc是一个设计模式,mvc在b/s系统下的应用:

1.3springmvc框架 步骤: 第一步:发起请求到前端控制器(DispatcherServlet) 第二步:前端控制器请求HandlerMapping查找Handler 可以根据xml配置、注解进行查找 第三步:处理器映射器HandlerMapping向前端控制器返回Handler 第四步:前端控制器调用处理器适配器去执行Handler 第五步:处理器适配器去执行Handler 第六步:Handler执行完成给适配器返回ModelAndView 第七步:处理器适配器向前端控制器返回ModelAndView ModelAndView是springmvc框架的一个底层对象,包括Model和View 第八步:前端控制器请求视图解析器去进行试图解析 根据逻辑视图名解析成真正的视图(jsp)

马士兵Spring学习笔记

课程内容 1.面向接口(抽象)编程的概念与好处 2.IOC/DI的概念与好处 a)inversion of control b)dependency injection 3.AOP的概念与好处 4.Spring简介 5.Spring应用IOC/DI(重要) a)xml b)annotation 6.Spring应用AOP(重要) a)xml b)annotation 7.Struts2.1.6 + Spring2.5.6 + Hibernate3.3.2整合(重要) a)opensessionInviewfilter(记住,解决什么问题,怎么解决) 8.Spring JDBC 面向接口编程(面向抽象编程) 1.场景:用户添加 2.Spring_0100_AbstractOrientedProgramming a)不是AOP:Aspect Oriented Programming 3.好处:灵活 什么是IOC(DI),有什么好处 1.把自己new的东西改为由容器提供 a)初始化具体值 b)装配 2.好处:灵活装配 Spring简介 1.项目名称:Spring_0200_IOC_Introduction 2.环境搭建 a)只用IOC

i.spring.jar , jarkata-commons/commons-loggin.jar 3.IOC容器 a)实例化具体bean b)动态装配 4.AOP支持 a)安全检查 b)管理transaction Spring IOC配置与应用 1.FAQ:不给提示: a)window – preferences – myeclipse – xml – xml catalog b)User Specified Entries – add i.Location: D:\share\0900_Spring\soft\spring-framework-2.5.6\dist\resources\sprin g-beans-2.5.xsd ii.URI: file:///D:/share/0900_Spring/soft/spring-framework-2.5.6/dist/resource s/spring-beans-2.5.xsd iii.Key Type: Schema Location iv.Key: https://www.360docs.net/doc/a615312308.html,/schema/beans/spring-beans-2.5.xsd 2.注入类型 a)Spring_0300_IOC_Injection_Type b)setter(重要) c)构造方法(可以忘记) d)接口注入(可以忘记) 3.id vs. name a)Spring_0400_IOC_Id_Name b)name可以用特殊字符 4.简单属性的注入 a)Spring_0500_IOC_SimpleProperty b) 5.

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的作用域和生存周期

mybatis-spring基本配置笔记

基本使用步骤: 1 导入jar包:mybatis-3.0.6-SNAPSHOT.jar 2 基本配置文件:Configuration.xml 文件放于com.yzy.mybatis下面 3映射文件配置:sql的语句映射

相关主题
相关文档
最新文档