我最近才整合完SSM。

前段时间,分开学习了这三个框架,都是看某黄埔军校的视频,整合的部分没看视频,想自己做。

但是有一些部分自己没有能完成,主要是如何从spring容器里取出ApplicationContext,这个我的实现比较low,看了看讲义,才OK的。

我的实现:

[java] view plain copy

WebApplicationContext acc = WebApplicationContextUtils.getRequiredWebApplicationContext(request.getServletContext());

ls = (LoginService) acc.getBean("MyService");

而讲义上的实现:

[java] view plain copy

@Autowired

@Qualifier("MyService")

private LoginService ls;

public void setLs(LoginService ls) {

this.ls = ls;

}

这里的区别呢,是我的实现在spring中还要注册MyService,虽然下面的写法我貌似。。。没学过?好吧应该就是注解实现。

这里放上我的Step,给自己看看,就当复习了。

[plain] view plain copy

2018年5月9日13:08:51

今天写SSM整合

1.建立项目,添加spring5\springMVC5\Mybatis3的maven

2.写spring、springmvc、mybatis的配置文件

2.1 spring配置文件,约束,哪里来?

源码中可以找sxd约束文件,这个的话我在

E:\2017下学期\spring-framework-5.0.5.RELEASE-dist\spring-framework-5.0.5.RELEASE\docs\spring-framework-reference

找到了,一个bean,一个context

2.2 spring配置文件,导入beans和database

2.3 spring-bean 我先创建一个实体类Person,再注册(注册了没用)

2.4 spring-db 我这里创建数据源,但是alt+/出不来提示,我一想,mysql的包没载入,在maven中加入

还是没得,恩,我加了jdbc的包,还是没有,我以为是没有源码,下载了,还是没有提示,棒

没有提示,我追了下源码,找set方法,我知道有4个,所以找得到,除此之外,还有一些其他属性可以设置

编写jdbc_mysql.properties文件,并导入

2.5 spring-bean 注册dao,这个是spring集成mybatis,注册sqlSession

这里就要导入mybatis和spring的整合包了,这里sqlsession中也要导入mybatis的配置文件

2.6 spring-bean 配置mapper自动扫描

MapperScannerConfigurer将扫描basePackage所指定的包下的所有接口类(包括子类),

如果它们在SQL映射文件中定义过,则将它们动态定义为一个Spring Bean,

这样,我们在Service中就可以直接注入映射接口的bean

意思就是可以直接ref="dao类名",给你自动注册好了

2.7 写mybatis的配置文件,一个别名,一个映射

约束去×××?dtd文件

2.8 写spring mvc配置文件,其实就是扫描controller

2.8 到这里,配置文件就写完了,这里注意的是,java代码没开始写,只是定义了几个包,dao\service\beans

-------------配置部分完成---------------------

3.编写service类和对应的dao

3.1 写loginservice接口

3.2 写实现类,其中有person的dao

3.3 写persondao,也是个接口

3.4 在spring-bean中注册接口

4.编写dao对应的mapper

4.1 这里的namespace直接为对应dao类的限定名

4.2 mapper中的id和类中方法id一致

4.3 参数传递,用#{}

-------------mybatis部分完成---------------------

4.编写controller

4.1 这里我写了个basecontroller用于获得applicationContext

4.2 就按照一般的,写了login

5.写jsp

5.1 写index

5.2 写welcome,成功

6.在web.xml中注册spring\springmvc

6.1 开启监听事件

6.2 注册spring

6.3 注册springmvc

7.跑程序

失败了1:datasource创建失败,读不到驱动,先把字符串填进去

失败了2:mybatis的config和mapper头中不能出现另一个 mapper 对应 mapper did config 对应 config did

失败了3:找不到persondao,bean初始化失败,dao的Setter忘了写无法注入

第二个原因,如果类名只有第一个字母大写,这个时候要写小写

ref="personDao" ref="IPersonDao"

失败了4:不用base这样的方法拿到容器。。。直接在参数中加上HttpServletRequest获取

8.加入springmvc拦截器,只让有权限的人进入网页

8.1 在controller中添加方法

8.2 编写拦截器类

8.3 在xml中注册拦截器

*这里我发现他的spring,就是获取容器那里好像是不太一样的,是

@Autowired

@Qualifier("MyService")

private LoginService ls;

public void setLs(LoginService ls) {

this.ls = ls;

}

这一堆东西,我找了找讲义,然后把代码给补上了,除了控制器这里,还有就是业务实现类:

@Service("MyService")

public class LoginServiceImp implements LoginService {

@Autowired

private PersonDao pdao;

这样,当然,还有xml配置文件里面,需要把之前手动定义的MyService变成扫描包

这样,就可以直接用ls了。

mybatis建议用配置文件开发,而springmvc我默认是注释,spring的注释也可以看一看

9.添加spring事务,当然是为了图ACDI特性

9.1 编写spring-tx配置文件,2件事,,

9.2 在业务类名上加上标记

9.3 测试事务性,在注册类中抛出异常

9.4 controller中写入注册方法

失败了:我按照讲义直接加注释,好像不行,看以前笔记,有个

@Transactional(isolation=Isolation.DEFAULT, propagation=Propagation.REQUIRED, rollbackFor=Exception.class)

可能是缺省的没有rollbackFor吧。。。

10.添加springmvc异常操作

10.1 在Springmvc中注册异常捕获

我发现我错了,是直接在controller写就好了,加上@ExceptionHandler(Exception.class)标记

OK

11.springAOP我还没涉及到,所以有这里再写个例子

这里写AOP的对一个类的处理,大概就是获取具体权限吧

比如我们权限有2个级别,登录是一个级别,买买买是一个级别,

每次执行买买买之后,就退出

11.1 导入aspectj的包

11.2 编写MyAspectJ.java,编写前置通知、后置通知

11.3 在spring-aspectj.xml中注册

失败了:一直不行,配置得好好的,AspectJ可以对service进行拦截,但是对controller不行

这个时候我就在想,因为service毕竟是在容器里注册了的,但是springmvc里面也有controller的注册啊

查了半天,恩,aspectj的配置要写在springmvc的配置文件里面就生效了。。。

绝望嘻嘻嘻

至此,SSM整合,完成。2018年5月10日17:35:08

java ssm项目心得总结_SSM整合,个人总结和step相关推荐

  1. java ssm项目经验描述_第一个SSM完整项目开发心得

    博主因为打算要考研,所以为了给自己留一手后路.学习了SSM框架.这学期就做了一个完整的SSM项目.(如果考研失败就去外包做一波CRUD boy) 所以边考研边利用业余时间做了一学期,接着期末一周的We ...

  2. vue+elementui学生宿舍管理系统(报修,来访登记,水电费)java ssm项目介绍

    宿舍,是大学生在高校校园里一个重要的学习.生活.交往的空间环境,大学生大约有2/3的时间是在宿舍环境里渡过的.作为计算机应用的一部分,使用计算机对宿舍信息进行管理,具有着手工管理所无法比拟的优点.例如 ...

  3. java ssm 项目_ssm开源java博客项目,基于maven搭建

    项目描述 1,包含登录注册,用户密码,加密 2,博客图片采用网络地址存储, 运行环境 jdk7+tomcat7+mysql5.6+IntelliJ IDEA+maven 项目技术(必填) spring ...

  4. java ssm项目_JAVA项目:逝去的SSM

    SSM(Spring+SpringMVC+MyBatis) SSM(Spring+SpringMVC+MyBatis)框架集由Spring.SpringMVC.MyBatis三个开源框架整合而成,常作 ...

  5. Java SSM项目运用策略模式思想

    1. 策略模式简介 策略模式(Strategy Pattern)中,定义算法族(策略组),分别封装起来,让他们之间可以互相替换,此模式让算法的变更和替换独立于使用算法的客户. 策略模式中体现了如下几种 ...

  6. java ssm 系统的搭建_SSM框架下的javaweb学生管理系统--搭建系统结构

    业务需求:一个登录页面,一个学生展示页面,添加.修改.删除三个功能 目的是给大家了解一个初级系统的构造,不写那么复杂的需求了. 从第一步开始:创建项目 打开eclipse,点击右上角的File--&g ...

  7. java SSM项目基础(day 5)[实现用户添加功能(注册)]

    既然是用户添加,我们不妨写个注册用户. 目录 思路整理 代码编写 前端页面 Register.jsp 后端代码 Service层 Controllor层 GitHub 思路整理 我们还是以  前端页面 ...

  8. java ssm 项目案例,亲测可用的JAVA SSM项目

    ta-INF\ 文件          39  2018-02-22 15:39  yosebook-ssm\WebContent\meta-INF\MANIFEST.MF 目录            ...

  9. java+ssm详解_ssm整合详解

    使用SSM(Spring.SpringMVC和Mybatis)已经有三个多月了,项目在技术上已经没有什么难点了,基于现有的技术就可以实现想要的功能,当然肯定有很多可以改进的地方.之前没有记录SSM整合 ...

最新文章

  1. 我常去的编程技术网站[最近更新:2010.09.29]
  2. 编程之美3.3 计算两个字符串的相似度
  3. 无法更改域名 php网页,WordPress更改新域名后网站无法正常运行怎么办?
  4. 【docker redis】Could not connect to Redis No route to host
  5. SAP 电商云 Spartacus UI 里如何捕捉语言设置的更改
  6. Numpy中数组创建函数的辨析
  7. asp.net下载的三种方式
  8. qt创建右键菜单,显示在鼠标点击处
  9. Cortex-M3 I-Code,D-Code,系统总线及其他总线接口
  10. postgresql 分割_三分钟解析postgresql提权
  11. 双重认证 也不安全:Gmail、Yahoo mail 已被攻破!
  12. python和其它语言混合编程_C++和Python混合编程 - python嵌入C++
  13. matlab工具箱下载
  14. 青少年重度抑郁的动态功能连接:与严重程度和症状维度的关系
  15. 木瓜 移动端 java 高工
  16. vim方向键无效的解决方案
  17. Ubuntu 下如何下载GitHub里的文件 和 GRC结合hackrf 实现GMSK文本传输
  18. 2020三校生英语计算机试卷,2020江西省“三校生”对口升学考试考试说明英语科目最新考试英语复习教材考前模拟试卷课本教材资料试题...
  19. 【广告联盟电商SEO】广告联盟网站收集
  20. java指针乱跳_鼠标卡顿,指针乱跳,鼠标失灵的解决办法。 涨知识了

热门文章

  1. 燃气管道泄漏监测报警系统
  2. 设计艺术字体如何确定
  3. js的 cssText
  4. Unity热更新系列之 大版本更新应用覆盖安装问题
  5. 建立虚拟课堂需要考虑哪些因素?
  6. 滑动轨迹 曲线 python_滑氏的起源 - 滑氏族谱 - 滑姓
  7. 交融式理念引领豌豆荚第三代计划
  8. react require图片路径问题
  9. Mike 2014 安装驱动错误
  10. a12处理器和骁龙855_骁龙 855 上市,A12 还能打吗?