SSM的初步学习

Spring的Bean:

标签基本配置

范围配置:

 singleton和prototype的创建对象时机不同!!!

Bean实例化的三种方法:

=================================================

依赖注入: 

只是一种简便写法

实际中运用的最多的还是子标签<property> </property> 来进行依赖注入,看着更加的直观。

构造方法的注入:

创建一个有参构造,把需要注入的类作为参数,然后在spring的xml配置文件里面,把被需要注入的类用<construct-arg></construct-arg>子标签添加到被注入的bean下。

Bean的依赖注入的数据类型:

import引入xml文件(分模块开发) 

 重点配置:

Spring相关API:

getBean的两种使用方法: 

如果Spring容器内一个类型的对象有多个的情况下,还是需要用id这种唯一标识来区分。

如果一个类型的对象只在容器内被创建了一个,那么就可以用字节码来getBean。 

=================================================

 Spring配置数据源:

Spring的原始配置: 

关于对象的依赖注入的注解使用 

Spring新注解:

Spring继承Junit步骤: 

Spring集成web环境:

如何将代码中反复创建application对象,从容器中获取bean的这两行代码给优化掉。避免每个方法当中都需要写这两行代码。

Spring提供获取应用上下文的工具: 

Spring MVC简介:

SpringMVC快速入门的步骤: 

Spring执行流程:

SpringMVC@RequestMapping注解的一些参数和使用: 

 spring-mvc.xml的组件扫描:

可以直接用单标签扫描某个包,也可以用include-filter去指定某个注解或其他的。 

spring-mvc.xml内配置内部资源视图解析器:

=================================================

SpringMVC的数据响应:

返回ModelAndView对象

可以单独的设置Model或者是View。 进行数据传输和页面的跳转。

 

直接将方法里的return,当作数据返回到页面上。如果不加这个注解,那么springMVC会去找return字符串名称的jsp页面。 

通过配置,可以直接return对象,SpringMVC会通过Handler Adapter里的messageConverts里配置的MappingJackson2HttpMessagecConverter自动转换。

注册一个注解驱动,就会自动的帮你实现上一步的那些繁琐的配置 !!!(相当重要,在创建了Spring-mvc配置文件之后,首先就得写这句话)

=================================================

获得请求参数:

基本类型参数:

POJO类型参数: 

数组类型参数: 

集合类型参数:(较为复杂) :

第一个场景:

借助一个VO对象来进行封装。

第二个场景:

 在提交数据的时候,设置contentType去在请求头中就告知服务器用json格式去处理数据。

静态资源权限的开放:

配置servlet处理器,因为SpringMVC都经过DispatcherServlet来进行处理,又都被设置处理为了/,就导致jsp页面它找不到js文件。就需要进行这样的配置,意思就是当DispatcherServlet处理不了的时候,就使用默认的处理。 

请求数据乱码的问题:

之前都是需要request.setCharacter Encoding方法来配置请求数据的类型。

现在配置一个filter就可以实现解耦合。在处理请求数据的时候就不用处理中文乱码。

参数绑定注解:

Restful风格的参数: 

=================================================

自定义类型转换器:

  

SpringMVC获取Servlet的相关API:

获得请求头: 

Cookie值: 

文件上传:

实现步骤: 

浏览器:

服务端:

单文件:那么就只需要一个MultipartFile去接就可以了。

多文件: 

=================================================

Spring JdbcTemplate:

 

 

=================================================

Spring练习环境搭建:

完成一个Spring 、SpringMVC的联系项目

=================================================

拦截器(Interceptor)

Filter和Interceptor的区别:

 在一些基本功能上面,Filter和Interceptor是相差无异的。在SpringMVC的项目当中一般都是使用的Interceptor。

项目中的一些jsp页面,图片等等一些静态资源的访问,并不单单取决于Interceptor的配置,有一个静态资源放行的配置也是很重要的。 

<!--3、静态资源权限开放-->
<mvc:default-servlet-handler/>

Interceptor内部的三个方法:

自定义拦截器的步骤:

1、创建拦截器实现HandlerInterceptor接口

2、配置拦截器 

在spring-mvc.xml文件里面配置好拦截器。

3、编写代码测试。。(图略) 

SpringMVC的异常处理机制:

异常处理的两种方式:

1、第一种异常处理方式:

SpringMVC里的简单异常处理器SimpleMappingExceptionResolver: 

2、第二种异常处理方式:

自定义异常处理类去实现HandlerExceptionResolver接口,用里面的异常类型这个参数来进行判断,就可以实现对不同的类型异常进行不同的操作。

=================================================

Spring里的AOP:

 

AOP作用与优势: 

AOP的动态代理技术: 

AOP的底层代码实现:

JDK动态代理: 

cglib的动态代理: 

AOP的相关概念:

通俗一点理解:

连接点就是全部可以被增强的方法,还没被增强。

切入点就是已经被增强的方法。

切面就是被增强的方法和通知的结合 

AOP开发明确事项:

切点表达式的写法:

通知的类型 :

注解方式配置AOP开发:

 在增强类上方加上@Conponent的注解给Spring容器管理,然后加上@Aspect注解通知Spring容器它是一个切面类。

在需要加强的类上面加入@Component注解交给Spring容器来管理 

 最后,需要在配置文件里面,加上注解扫描和AOP的自动代理。这样才能完整识别。

抽取定义切点表达式 

=================================================

Spring的事务控制:

编程式事务控制相关对象:

 封装一些事务相关的参数

事物的隔离级别: 

 事务传播行为:

事务的状态信息:

声明式事务控制:

增强配置的属性: 

 配置事务的属性,可以针对方法来添加不同的属性值。

基于注解的声明式事务控制:

既然是使用注解,那么就需要在applicationContext.xml文件里打开组件扫描。

将不是自己定义的类用bean标签配置好。

使用注解配置Dao类,注入jdbcTemplate。

将Service交由Spring容器管理,注入Dao实现类。 

在需要添加事务的方法上面用@Transactional注解配置事务,后面可以配置参数。 

同样,这个Transactional注解也可以放到Service层上,那么这个Service层所有方法都会执行这个事务。

=================================================

Mybatis:

原始JDBC开发的问题: 

MyBatis映射文件概述:

MyBatis基本的实现步骤

mapper映射文件文件

 配置文件:主要就是配置你的数据源,还得去加载映射文件

插入操作:

修改操作:

删除操作: 

 MyBatis核心配置文件:

Environment标签:

mapper标签: 

properties标签: 

typeAliases标签(别名): 

SqlSession工厂构造器SQL SessionFactoryBuilder:

常用api:

MyBatis的Dao层实现:

使用代理开发的方式:

编写Mapper接口:

动态SQL:

<if>标签的使用:

原版语句如下,并不能实现动态:

select * from user where id=#{id} and username=#{username} and password=#{password}

<foreach>标签的使用:

原版语句如下,并不能实现动态:

select * from user id in(?,?,?)

MyBatis映射文件涉及的标签:

=================================================

MyBatis核心配置文件的深入:

typeHandlers标签:

类型处理器:

如果不符合自己的要求吗,可以重写类型转换器:

PageHelper

在导入相关的坐标之后,在Mybatis配置文件里用plugins标签来配置

然后在你想要进行分页查询的语句前面,就可以设置分页的条件了。

 如果需要获取到分页的信息的话,可以创建一个PageInfo对象,将你所查数据的类型,和查询的对象集合传给他,就能获取数据 

一对一查询的配置

一对多的表查询的配置:

 多对多

一对一:<result> + <association>标签就可以解决

一对多:<result> + <collection>标签

多对多:相对于一对多来说,就只是多了一张中间表。配置方式都是一样的

使用注解:

 直接将注解加到mapper的接口类里的方法上面。

复杂查询:

一对一的封装方式:只需要一个Results的注解,跟xml配置文件里的标签用法类似         

一对多的封装方式:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值