Java中级班SSM笔记

9 篇文章 0 订阅
3 篇文章 0 订阅

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实例时,只需要使用自动注入即可;

版本控制服务

首选Git。
1 它能对每次修改进行记录,每次记录都有一个版本号,可跟据需要回滚;
2 它能实现多人协作开发,帮助开发者之间同步工程的内容;

Git的初次使用过程:

1)建立远程仓库;
2)建立本地项目;
3)在本地项目中创建本地仓库;将项目文件添加到本地仓库,提交这次改变到本地仓库;
4)将本地仓库与远程仓库关联;
5)将远程仓库的内容拉到本地来与本地内容合并;
6)将合并提交到本地仓库;
7)将本地内容上传到远程仓库;

项目开发管理

1 使用敏捷开发管理平台;
2 开发过程分为多个迭代,每个迭代是一段比较短的时间,一般最短一周,最长一个月;
3 每个迭代都包含多个任务,为一个迭代增加任务,就是做一段时间的计划;
4 在需求分析阶段可以在“项目规划”中把功能规划出来,功能分成三层,Story层的功能可以直接做为任务分配到迭代中;
5 任务有状态,刚分配的任务是“新建”状态,任务处理人在处理任务时需要把状态改为“进行中”,处理完成后改为“已解决”,然后由测试人员开始测试,此时需改为“测试中”,如果测试出错,改为“已拒绝”,这需处理人重新处理任务,如果测试通过,改为“已关闭”,这种状态才表示任务完成了。

单元测试

1)最流行的Java测试框架是JUnit;
2)Maven中,测试代码必须放在“src/test/java”下;
3)因为我们的项目中使Spring集成了MyBatis以及其它对象,所以测试代码的运行也需要Spring的支持,所以下要添加spring-test库;
4)需要告诉测试用例类如何找到Spring的配置文件,用注解:@ContextConfiguration(locations={“classpath:spring-context.xml”})
5)测试类中包含测试代码的类需要以@Test注解;
6)test下的代码仅用于开发阶段的测试,打包发布项目时,不被包含;

SpringMVC中添加一个页面的过程:

1)在Controller中添加一个方法对应对页面的请求;
2)为这个方法添加注解,说明其对应哪个路径;
3)在这个方法中返回view层文件的名字;
4)添加view层的文件(jsp);

创新课堂项目开发

一:创建数据库,建立用户表

二:实现用户登录和注册功能

1 表单提交后,SpringMVC的Controller如何接收数据?
       在请求响应方法中,为提交的数据添加对应的参数,利用注解指定参数对应的数据;
2 添加用户成功后,如何获取这条记录的ID?使用MyBatis的主键回填技术,其要点为:
   1)在Mapper文件中设置需要主键回填的方法元素的属性;
   2)启用主键回填:useGeneratedKeys=“true”;
   3)指定回填到对象的哪个属性:keyProperty=“id”;
3 如何在多次请求之间共享数据?使用HttpSession
4 如何保持页面与URL地址中路径的一致?使用重定向

三:实现登录拦截

1 JSP中使用Filter拦截Servlet和Jsp的访问;
2 SpringMVC中使用拦截器拦截所有页面的请求;
3 使用步骤分两步:1)实现拦截器类;2)配置拦截器;

四:实现登录验证码

五:实现课程类别管理

1 类别分两级
2 两级类别之间是父子关系,要取得1级类别时自动取得2级类别,需使用MyBatis的级联技术;
3 如果实体类的属性与表的字段名完全相同,MyBatis可以做到表与实体类的字段之间自动映射(这里面还包含了字段与属性间数据类型的自动转换,即JDBC类型与Java类型之间的转换),但如果无法自动转换,就需要我们自定义映射关系,使用<ResultMap>。当然要使用级联的话,也需要定义<ResultMap>。
4 步骤:
   1)在数据库中创建两个表catagory1和catagory2,对应一级类别与2级类别;
   2)创建实体类,对应这两个表;
   3)创建Mapper接口,在Mapper文件中定义这个接口的查询语句,用于访问这两个表;
   4)创建新的Controller类和Service类,用于处理类别相关的请求;
   5)在JSP中利用jstl循环动态产生每个类别的HTML元素,以展示类别;

六:实现课程创建

1 文件上传与接收;
   1)需要依赖库:commons-fileupload;
   2)需要在mvc配置文件中配置multipartResolver;
   3)在网页中以Form的形式提交,仅支持HTTP POST方法;
   4)在Controller的响应方法中以参数形式接收,参数类型必须是MultipartFile
   5)需要将文件保存到服务端某个约定的文件夹下;
   6)需要获取提交文件的原始文件名(使用方法getOriginalFilename()),主要是为获取其扩展名;

课程分页展示

1 分页中用到的参数:当前页开始序号、一页多少条、当前页号、上一页页号、下一页页号、第一页页号、最后一页页号,总页数。页号的计算:当前条的序号÷每页条数。
2 推荐使用MyBatis分页插件PageHelper实现分页;
3 分页的本质是组织出合适的数据表查询语句;
4 使用步骤:
   1)添加依赖项;
   2)为sqlSessionFactory配置分页插件;
   3)在调用查询数据表的方法之前,调用PageHelper.startPage();
   4)要想获取分页信息,创建PageInfo对象;

验证码

1 什么是验证码?用图像显示出的一组动态变化的内容,为需要手动操作的业务防止程序操作;
2 浏览器显示出的是一个图像;
3 每点一下这个图像就改变一次内容;
4 内容是在后台随机产生的,后台跟据验证码的内容创建出内存中的图像,返回给浏览器。这个过程肯定在Controller的一个方法完成,网页要显示这个图像,只需要让img的src指向这个方法的路径即可;
5 验证码可以自己计算,但是要产生高级复杂的验证码还要借助第三方库:jcaptcha。注意,如果你使用JDK7以上的版本,最好使用jcaptcha2.x,而不是jcaptcha1.x ;
6 必须保证验证码不被浏览器缓存,可以在图像HTTP包的包头中设置缓存参数,但是这还不够,还需要在HTML的img元素中做一些手脚,只要保证了每次img的URL都发生变化,浏览器就不从缓存中取之前的图像;

BootStrap

Ajax

1 Ajax是通过JavaScript以异步形式访问服务端功能的技术;
2 异步调用离不开回调函数,发出一个异步请求后,回调函数是在请求返回后执行,但什么时候执行无法预料;
3 JavaScript在浏览器端才是代码,在服务端只被当作文本;
4 虽然JavaScript有原生的Ajax API,但是大家都使用jQuery;

JSON

RestFul Controller

Java SSM(Spring+SpringMVC+MyBatis)是一种基于Java语言的Web开发框架。学习这个框架的过程中,我深刻体会到它的强大和灵活性。 首先,Spring框架为开发者提供了一个强大的IOC(Inversion of Control)容器,它能够管理和注入对象,减少了代码之间的耦合性。通过配置文件或注解,我们可以轻松地定义和获取各种对象,提高了代码的可维护性和可扩展性。 其次,SpringMVC框架是一种MVC(Model-View-Controller)设计模式的实现,它用于处理Web请求和响应。通过配置一个请求映射和处理器,我们可以将请求分发给相应的控制器进行处理,并将处理结果返回给客户端。SpringMVC还提供了一些便捷的注解和标签,用于简化页面的渲染和参数的绑定。 最后,MyBatis是一种优秀的持久化框架,它能够将数据库操作与Java对象之间的映射简化为简单的配置。通过编写SQL映射文件和定义POJO(Plain Old Java Object)类,我们可以方便地进行数据库的增删改查操作,而无需编写冗长的SQL语句。 在学习Java SSM框架的过程中,我深入理解了软件开发过程中的MVC思想,并学会了如何利用Spring、SpringMVC和MyBatis来实现一个完整的Web应用程序。通过不断的实践和调试,我逐渐培养了自己解决问题和调试代码的能力。 总结起来,学习Java SSM框架使我深入理解了软件开发的各个环节,并提升了我的编码能力和开发效率。我相信这些知识和经验将对我的职业发展和项目实施起到积极的促进作用。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值