Spring基础总结文档格式.docx

上传人:b****3 文档编号:17547314 上传时间:2022-12-07 格式:DOCX 页数:21 大小:345.79KB
下载 相关 举报
Spring基础总结文档格式.docx_第1页
第1页 / 共21页
Spring基础总结文档格式.docx_第2页
第2页 / 共21页
Spring基础总结文档格式.docx_第3页
第3页 / 共21页
Spring基础总结文档格式.docx_第4页
第4页 / 共21页
Spring基础总结文档格式.docx_第5页
第5页 / 共21页
点击查看更多>>
下载资源
资源描述

Spring基础总结文档格式.docx

《Spring基础总结文档格式.docx》由会员分享,可在线阅读,更多相关《Spring基础总结文档格式.docx(21页珍藏版)》请在冰豆网上搜索。

Spring基础总结文档格式.docx

MVC封装包提供了Web应用Model-view-Controller实现.

Spring流程:

由客户端发送请求,经过Spring前控制器,前控制器把请求发送给自定义控制器,进行处理请求数据,根据请求数据创建ModelAndView,然后根据请求响应模型或页面给主控制器,主控制器根据模型进行验证,控制响应模型响应给主控制器,主控制器响应给客户端.

SpringMVC:

Spring的MVC围绕DispatchServlet设计,dispatch的作用是将请求分发到不同的处理器.

1.清晰的角色划分:

控制器,验证器,表单对象,命令对象,模型对象,Servlet分发器,分发器映射,视图解析器.

2.强大而直接的配置:

框架类,应用程序类都使用javabean来配置.

3.可适配,非侵入:

simple型,command型,from型.

4.可重用的业务代码:

可以使用现有的对象作为表单或业务对象.

5.可定制绑定和验证.

6.可定制处理映射和页面决定.

7.灵活的模型转换.通过Map来达到视图技术的集成.

8.可定制本地化和主题解析:

支持JSTL,Spring(from,tags)等标签语言.

9.SpringBean的生命周期可以被限制在当前的HTTPRequest或者HTTP

Session。

准确的说,这并非SpringMVC框架本身特性,而应归属于SpingMVC使用的WebApplicationContext容器。

Spring中的特殊Bean:

1.Controller(控制器).

2.Headlermapping(处理器映射)

3.Viewresolvers(视图解析器)

4.Localresolver(本地化解析器)

5.Themeresolver(Web主题解析器)

6.Multipartfiledresolver(文件上传解析器)

7.HerdlerExceptionresolver(处理异常解析器)

Spring控制器:

1.Controller控制器.

2.抽象的控制类abstractConlltroller(实现handleRequestInternal(HttpServletRequest,HttpServletResponse)抽象方法)

3.多方法控制类MultiMethodController(可以自定义方法名)

4.表单控制器

5.命令控制器

6.向导型控制器.

Spring跳转方式:

●Redirect(丢失数据,重新提交表单路径)

●Forward(不丢失数据,执行当前路径)

Spring视图解析:

(这样保持应用程序的一致性视图页面)

<

!

--设置显示返回页面信息-->

<

beanid="

viewResolver"

class="

org.springframework.web.servlet.view.InternalResourceVi

ewResolver"

>

--设置文件前缀与后缀-->

propertyname="

prefx"

value="

/"

/>

suffix"

.jsp"

/bean>

Spring标签:

两大标签:

核心标签,from表单标签.

From表单标签:

内部暴露一个path,绑定对象模型,命令模型放pageContext中去.

Errors标签:

展现字段的错误,来自你关联控制器的验证器产生的错误途径.

用于错误消息验证的绑定等等.

Spring验证器:

有两种方式:

1.直接通过bindException绑定错误对象.

2.实现validator接口,通过IOC方式注入你要验证的Class在配置Controller文件是进行property进行关联.

beanname="

/person.do"

class="

com.lxit.spring.controller.PersonController"

<

formView"

/person.jsp"

successView"

/success.jsp"

commandName"

person"

commandClass"

value="

com.lxit.spring.validator.Person"

validator"

ref="

personValidator"

Spring的注解:

(通过DispatchServlet扫描映射方法,在Dispatch-servlet.xml加入组件配置)

--通过注解自动装配@Controller类,*号代表所有目录也包括子目录-->

context:

component-scanbase-package="

com.lxit.spring.*"

类注解:

@controller指定类控制器

方法注解:

@RequestMapping(“/index.do”)映射一个请求路径.

@SessionAttrubutes()存储会话的属性.

@RequestMapping(value="

/getSession.do"

publicStringgetSession(@ModelAttribute("

session"

)Useruser){

log.info("

=======获取登录用户@ModelAttribute如下:

=========="

);

用户名:

"

+user.getUsername());

密码:

+user.getPassword());

return"

;

}

@RequestParam()绑定地址栏传参方法和参数.

@RequestMapping(value="

/getRequestParam.do"

method=RequestMethod.GET)

publicStringgetRequestParam(

@RequestParam("

username"

)Stringusername,Modelmodel){

=======获取@RequestParam如下:

log.info("

+username);

model.addAttribute("

username);

@ModelAttribute当作为一个方法参数时@ModelAttribute用于映射一个模型属性到特定的注解的方法参数.

Spring-IOC-控制反转:

如何理解IOC:

“不要打电话给我,我会打给你”

IOC与DI(依赖注入)是同一种理念

org.springframework.beans及org.springframework.context包是SpringIOC容器的基础.

BeanFactory:

擅长处理bean的配置和初始化与装载.

如何配置bean:

helloBean1"

class="

com.lxit.spring.service.HelloBean"

--导入系统资源配置文件-->

星字符是通配符,两个**可以匹配应用程序下任何地方.

importresource="

applicationContext-*.xml"

/>

applicationContext-two.xml"

Bean的命名:

Bean可以有多个ID或者一个ID,但是ID是唯一的,id与name是等价的.

bean的别名配置:

aliasname="

helloBean"

alias="

hello"

ApplicationContext:

在bean的功能之上,添加了更多功能如AOP/事物处理.

1.应用上下文提供文本信息解析工具,包括国际化.

2.应用上下文提供了载入文件资源的通用方法,载入图片.

3.应用上下文可以注册为监听器的bean方法事件.

ApplicationContext有那些重要的子类:

1.ClasspathXMLApplicationContext:

从类路径中的XML文件载入上下文定义信息,把上下文定义文件当成类路径资源.也就是解析应用程序相对路径下的上下文XML.

2.FileSystemXMLApplicationContext:

与上面恰恰相反,解析绝对路径下面的XML文件.

3.XMLWebApplicaionContext:

从WEB系统中的XML文件载入信息.

Classpath*:

前缀:

是查找应用程序路径下的applicationContext.xml.

File:

是file前缀来指定加载的配置文件信息.

自动装配(autowire)协作者:

注意:

在spring2.5.6以后的本版中,不再需要指定autowire属性,因为BeanFactory会自动检查bean关联关系:

五种类型:

1.No.

2.Byname根据名字进行装配.

3.Bytype根据类型进行装配.

4.Constructor根据构造进行装配.

5.Autodetect根据bean类的自省机制来决定使用构造器还是类型进行方式,如果发现默认是构造器,那么将使用bytype方式.

Spring依赖注入:

四种方式:

1.接口注入方式:

-好处降低代码的耦合度,提高代码的可读性和操作性.

--配置接口注入Bean的实例,注入实例后调用初始化init方法-->

cbean"

com.lxit.spring.controller.ClassBean"

init-method="

init"

2.构造器注入方式:

-根据参数类型进行匹配,如果构造器参数类型定义明确,bean定义的参数顺序就是构造器参数顺序.<

配置信息如下>

有4种方式配置值

1.name属性2.type:

类型配置3.index下标指定4.ref引用配置bean

constructorbean1"

com.lxit.spring.controller.ConstructorBean"

--注入对象进行引用与构造器的参数进行对应也可以通过下-->

--<

constructor-argindex="

0"

constructor-argtype="

java.lang.String"

admin"

int"

100"

-->

<

constructor-argname="

hellobean"

name"

count"

1"

3.Setter设值注入:

-调用bean的set方法,即可实现基于setter的依赖注入.

3种配置方式:

1.配置当前上下文-local属性

2.配置应用程序的资源配置-bean

3.配置内部bean

setterbean1"

com.lxit.spring.controller.SetterBean"

local作用于当前上下文

reflocal="

/property>

setterbean2"

--作用于整个应用程序-->

refbean="

setterbean3"

配置内部bean方法<

beanclass="

com.lxit.spring.controller.HelloBean"

Spring-bean作用域:

五种作用域:

1.singleton-单实例,多分发处理.

2.prototype-多实例.每来一个实例实例化一次.

3.Requrst–请求一次实例一次.

4.Session–基于session

5.GlobalSession-全局session.

Spring-bean生命周期:

1.实例化bean.

2.依赖注入,设置bean属性.

3.实现了BeanNameAware,调用setBeanName,获取当前Bean的ID.

4.实现了BeanFactoryAware,调用setBeanFactory,获取当前上下文的bean对象.

5.初始化bean.实现了InitializingBean.

6.初始化自定义init方法.

7.处理当前bean前面的bean配置.postProcessBeforeInitializatio

8.处理当前bean之后的bean的配置.postProcessAfterInitializatio

9.调用系统的destroy()进行销毁.

10.调用自定义销毁方法.

Spring-集合注入:

4种集合:

1)List集合:

--配置集合对象-->

someList"

list>

<

value>

${system.name}<

/value>

object"

singleton"

/list>

2)Set集合:

--配置set对象-->

someSet"

set>

/set>

3)Props(资源文件):

config"

org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"

locations"

classpath:

resources.properties<

--设置键值lazy-init设置为ture当实例化的时候使用不然不进行加载-->

prosService"

com.lxit.spring.service.PropsService"

lazy-init="

true"

properties"

props>

propkey="

sid"

/prop>

admin<

123<

--资源文件进行控制开关-->

sys.log"

${sys.log}<

/props>

4)Map(键值对):

--配置map对象key字段必须指定Value属性-->

someMap"

map>

entry>

<

key>

<

username<

/key>

/entry>

entrykey="

你好世界!

/map>

集合的合并:

从2.0开始,SpringIoC容器将支持集合的合并。

这样我们可以定义parent-style和child-style的<

list/>

、<

map/>

set/>

property/>

或<

props/>

元素,子集合的值从其父集合继承和覆盖而来;

也就是说,父子集合元素合并后值就是子集合中的最终结果,而且子集合中的元素值将覆盖父配置中对应的值.

组合属性注入:

子类可以给父类的属性赋值(在子类中引入父类并生成get(),set()。

然后在bin的身体里面通过<

property>

来指定)

Spring-注解:

隐形加载方式:

1.AutowiredAnnotationBeanPostProcessor:

自动扫描注解处理类2.CommonAnnotationBeanPostProcessor:

组件注解处理类

3.PersistenceAnnotationBeanPostProcessor:

持久化注解处理类4.RequiredAnnotationBeanPostProcessor:

检查/验证注解处理类

属于java规范的注解有:

@Resource(相当于autowired)

@PostConstruct(指定自定义方法初始化)

@PerDestroy(指定自定义销毁方法)。

Spring注解:

@component组件做了最基本的事情,把类转为组件实例

组件可以实现通用的方法和共同的逻辑,注解是依赖于组件的

@Controller、@Service,@Repositroy分别对应了控制层、服务层、持久化层

@Scope可以用来指定singlethon、prototype、request、session、globalsession五大作用域

使用过滤器自定义扫描:

我们可以通过context-component-scan的include-filter和exinclude-filter来进行添加,每个过滤器都必须有<

type>

expression>

属性,我们用到的过滤器有regex、annotation等

@Autowired注解可以用于:

1.设值注解:

通过set方法注入

2.构造注解:

通过构造方法注入

3.多参数注解:

通过以属性为参数的方法

我们可以在@Autowired注解的括号里指定required=false,也就是你当前注入的实例存不存在都可以

@Autowired可以注入bean容器

@Qualifier注解:

可以帮我们指定注入的实例,这个注解也可以被指定为构造器的参数和方法的参数

Spring–AOP(面向切面编程):

AOP在formWork的作用:

1.提供声明式企业服务,为了替代EJB的声明式服务,最重要的服务是声明性事务管理.

2.允许用户实现自定义切面,用AOP来完善OOP使用.

AOP的组成与概念:

1.切面(aspect):

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 表格模板 > 表格类模板

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1