一 Spring 'Spring框架是个轻量级的Java EE框架。IOC(控制反转)、DI(依赖注入)、AOP(面向切面)是Spring的核心思想
一、IOC/DI(控制反转/依赖注入)
IOC(控制反转 ):就是 创建对象由以前的程序员自己new来调用,变成了交由Spring创建对象。
和传统方式获取对象的方式不同:
传统方式:通过new 关键字创建一个对象,比如:Person p = new Person();
IOC方式:对象的生命周期由Spring管理,直接从Spring那里获取一个对象。控制反转 也就是 控制权原来属于程序员 现在交给了Spring
DI(依赖注入):就是 拿到的对象的属性,已经被注入好了相关的值,直接使用即可。
二、注入对象
可为对象的属性注入值。
可为对象注入值。
三、注解方式IOC/DI
以上为在applicationContext.xml配置文件中直接配置。还可以用注解的方式进行配置,以简化xml的配置内容。
在xml中添加 <context:annotation-config/> 表示 告诉Spring要用注解的方式进行配置
四、AOP
AOP 即 Aspect Oriented Programming 面向切面编程
在面向切面编程的思想里面,把功能分为核心业务功能,和周边功能。
所谓的核心业务,比如登陆,增加数据,删除数据都叫核心业务
所谓的周边功能,比如性能统计,日志,事务管理等等
周边功能在Spring的面向切面编程AOP思想里,即被定义为切面
在面向切面编程AOP的思想里面,核心业务功能和切面功能分别独立进行开发
然后把切面功能和核心业务功能 "编织" 在一起,这就叫AOP
二SpringMvc实例的简单流程1.在web.xml文件中配置DispacherServlet:配置SpringMvc配置文件的位置和名称
2.创建springMvc配置文件,根据web.xml文件中的配置。配置文件名为:springMvc.xml,位于src路径下
1).自动扫描的包在spring中有相关介绍,此处不做介绍
2).配置视图解析器:为了将handler方法的返回值解析为实际的物理视图,此处为解析成jsp。
3.使用@RequestMapping映射请求
1).使用@RequestMapping注解映射请求的URL
2).返回值(此处为“success”)会通过视图解析解析为实际的物理视图,此处为InternalResourceViewResolver,并
通过prefix + 返回值 + suffix 这样的方式得到实际的物理视图,然后做转发操作
二、使用@RequestMapping映射请求
1.SpringMvc使用@RequestMapping注解为控制器指定可以处理的URL请求,注解可以标记在类上或方法上
2.Dispatcher截获请求后就通过@RequestMapping提供的映射信息确定请求所对应的处理方法
3.@RequestMapping中可以指定value(请求URL)、method(请求的方法)、params(请求参数)、heads(请求头),他们之间时 与的关系,使用多个条件联合查询,可使请求精确化。
4.支持Ant风格的Url,Ant风格地址支持三种匹配符: ?:匹配文件名中的一个字符
*:匹配文件名中的任意字符
**:** :匹配多层路径
5.@PathVariable映射URL绑定的占位符
通过@PathVariable可以将URL中占位符参数绑定到控制器处理方法的入参中
请求的URL为:<a href="helloworld/1">To success</a> ,可将“1”传入到方法中
三、映射请求参数、请求头
SpirngMvc通过分析处理方法的签名,将Http请求信息绑定到处理方法的相关入参中
1.使用@RequestParam可以把请求参数传递给请求方法 value:参数名、required:是否必须
请求Url:<a href="helloworld?username=123">To success</a>,可将请求参数中的“123”传递给方法。
2.使用@RequestHeader绑定请求报头信息,请求头包含了若干属性,服务器可据此获知客户端的信息
3.使用@CookieValue绑定请求中的Cookie值
4.使用POJO对象绑定请求参数,SpirngMvc会按照请求参数名和POJO属性名自动进行匹配,自动为该对象填充属性,支持级联属性
5.MVC的Handler可以接收ServletAPI
HttpServletRequest、HttpServletResponse、HttpSession、java.security.Principal、Locale、InputStream、OutputStream
Reader、Writer
四、处理模型数据
1.ModelAndView
控制器处理方法的返回值可以是ModelAndView,其包含模型和数据信息,Springmvc会将model中的数据放到request域中。
添加模型数据: ModelAndView addObject(String attributeName,Object attributeValue)
ModelAndView addAllObject(Map<String,?> modelMap)
设置视图: void setView(View view)
void setViewName(String ViewName)
五、视图及视图处理器
1.SpringMVC如何解析视图:
对于那些返回String、view或ModelMap等类型的处理方法,SpringMvc都会将其装配成一个ModelAndView对象。view接口时无状 态的,不会有线程安全问
2.重定向
如果返回的字符串中带有“forward:”或“redirect:”前缀时,SpringMVC会对他们进行特殊处理,将其当成指示符,其后的字符串
作为URL来处理。
六、数据的转换、格式化、校验
1.数据转换
SpringMVC定义了3种类型的转换器接口:
* Converter<S,T>:将S类型转换为T类型对象
* ConverterFactory:将相同系列多个“同质”Conterver封装在一起
* GenericConverter: 会根据源类对象及目标所在的宿主主类中的上下文信息进行类型转换
MyBatis核心配置文件常用标签: 1、properties标签:该标签可以加载外部的properties文件 2、typeAliases标签:设置类型别名 3、environments标签:数据源环境配置标签 4、typeHandlers标签:配置自定义类型处理器 5、plugins标签:配置MyBatis的插件
MyBatis的常用注解这几年来注解开发越来越流行,Mybatis也可以使用注解开发方式,这样我们就可以减少编写Mapper 映射文件了。我们先围绕一些基本的CRUD来学习,再学习复杂映射多表操作。 @Insert:实现新增 @Update:实现更新 @Delete:实现删除 @Select:实现查询 @Result:实现结果集封装 @Results:可以与@Result 一起使用,封装多个结果集 @One:实现一对一结果集封装 @Many:实现一对多结果集封装
编写相应配置文件(文件参考目录:素材/配置文件)
•日志文件:[log4j.xml]( |