转载

Java中级班SSM笔记

Spring+SpringMVC+MyBatis;

Web MVC框架:SpringMVC。

Spring:的核心工功能:控制反转(IoC),依赖注入(DI)–bean;

MyBatis:提供持久层操作的一个框架;

什么叫MVC:M是数据,V是能看到的东西,C是逻辑;

开发工具

IDEA;

项目管理工具:Maven:必须能联网!

Maven项目

1 项目目录结构是约定好的,遵守“约定大于配置”的理念;

2 src/main/java下放源码;

3 src/main/resourses下放非源码文件,比如配置文件;

使用Spring

0 添加Spring核心库,

1 可以在任何类型的项目中使用;

2 必须有配置文件,配置文件是XML;

3 在配置文件中定义Bean和Bean之间的关系;

4 Bean的定义的要素:Bean类名用于创建Bean对象,Bean名字,用于在其它地方引用它;

5 Bean的注入有两种常用方式:可以通过构造方法参数注入,也可以通过属性注入。

如何打开Maven工程?

Bean生命期是什么样的?

Bean的实例是如何被创建出来的? 通过什么技术?

动态代理

1 在程序运行中创建出代理,这就叫动态代理;

2 有两态API可以使用:一是JDK代理,二是CGLIB代理;

3 JDK代理需要被代理的类从接口派生,而CGLIB不需要;

Spring AOP

1 AOP 面向切面的编程

2 AOP可以一次性增强多个类的多个方法,其底层基于动态代理实现;

3 请自行搞懂AOP的相关概念:切面、连接点、切点、通知、织入等;

4 SpringAOP可以跟据被切的类是否实现了接口,决定底层利用JDK还是CGLib;

MyBatis

1 是一个ORM层框架;

2 用于访问数据库;

3 MyBatis不是一个纯ORM框架;

4 ORM 是Object-Relationship-Mapping;

使用过程:

1)添加依赖项

2)创建配置文件,配置数据源;

3)创建映射文件,写出SQL查询语句;

4)创建实体类;

5)创建会话工厂;

6)获取会话;

7)执行查询;

通过Session执行查询有两种方式,推荐使用接口进行查询的方式,此方式需要定义一个接口,接口对应Mapper文件的元素,接口中的方法对应中的查询语句;

安装MySQL服务,推荐使用XAMPP套件;其中包含了数据库的Web形式管理程序PhpMyAdmin;

为了保证无字符乱码,必须保证数据库与程序中的字符集和字符编码全部一致。

字符集与字符编码是不同的概念,字符集是对一坨字符的编号方案;字符编码是字符序号的表示方法;

UTF8是编码方法,Unicode是字符集编号方案;

SpringMVC

1 MVC:数据、视图、业务逻辑分离;

2 SpringMVC利用一个DispatcherServlet接管了所有路径的请求,然后分发给不同的Controller;

3 一个请求首先由Controller处理,处理完成后转给View层(一般是JSP),View层产生HTML最终传给浏览器;

使用步骤:

1 添加依赖库;

2 配置Web.xml,使SpringMVC的Filter起作用;

3 添加SpringMVC配置文件;

4 添加Controller类和方法以响应请求;

C与V之间如何传递数据?

SSM整合

1 SpringMVC是MVC架构的核心;

2 SSM中利用Spring的IoC功能自动管理各框架要创建的对象;还利用Spring的AOP实现了数据库事务的自动切入;

3 利用MyBatis实现了C与M的分离;

过程:

1)添加三个框架的依赖库,尤其注意Spirng和MyBatis的整合库,没有它,Spring无法以Bean的形式管理MyBatis中的对象;

2)修改web.xml,在里面添加Spring的ContextLoaderListener和Spring的DispatchServlet;

3)为ContextLoaderListener和DispatchServlet分别添加配置文件。DispatchServlet的配置文件中主要配置MVC框架相关的参数,比如如何找到Controller,如何找到view层文件,是否支持Web文件上传等,而ContextLoaderListener的配置文件中主要配置MVC无关的参数,比如如何整合MyBatis,MyBatis的数据源,如何为某些类切入事务管理等等。

4)创建Controller类,处理业务;

5)创建Mapper接口和Mapper文件,访问数据库;

6)创建JSP文件,产生HTML;

Spring整合MyBatis后,获取Mapper实例时,只需要使用自动注入即可;

原文  https://blog.csdn.net/niu_gao/article/details/82876045
正文到此结束
Loading...