前言

半路出家写的java,SpringMVC的原理还不是很通,但是项目需要,需要将项目往SpringCloud服务治理方向走,SpringCloud是基于SpringBoot搭建的,所以要先将SpringMVC的项目先转成SpringBoot

其实SpringBoot和SpringMVC没什么区别,只是SpringBoot是官方推出的简化了Spring项目的过多的繁琐的配置而生的,所以项目转化的核心主要是改配置,将之前Spring的项目的jdbc,mybatis,redis等配置转化成SpringBoot的方式配置,其他的业务逻代码完全是兼容的,直接拷贝过来就可以用了

步骤一: 搭建一个最基础的SpringBoot项目

步骤二: SpringBoot集成数据Mybatis(设计jdbc,duri等)

# 数据库访问配置
spring.datasource.db.type=com.alibaba.druid.pool.DruidDataSource
spring.datasource.db.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.db.url=jdbc:mysql://xxxxx.com/wallet_supper?useUnicode=true&characterEncoding=utf8&autoReconnect=true
spring.datasource.db.username=linpeng
spring.datasource.db.password=xxxxx
# 下面为连接池的补充设置,应用到上面所有数据源中
spring.datasource.db.initialSize=25
spring.datasource.db.minIdle=5
spring.datasource.db.maxActive=100
# 配置获取连接等待超时的时间
spring.datasource.db.maxWait=60000
# 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
spring.datasource.db.timeBetweenEvictionRunsMillis=60000
# 配置一个连接在池中最小生存的时间,单位是毫秒
spring.datasource.db.minEvictableIdleTimeMillis=300000
spring.datasource.db.validationQuery=SELECT 1 FROM DUAL
spring.datasource.db.testWhileIdle=true
spring.datasource.db.testOnBorrow=false
spring.datasource.db.testOnReturn=false
# 配置监控统计拦截的filters,去掉后监控界面sql无法统计,'wall'用于防火墙
spring.datasource.db.filters=stat,wall,log4j
spring.datasource.db.logSlowSql=true#################mybatis基础配置#################
mybatis.mapper-locations=classpath*:com/jiuzhm/mybatis/**/*.xml
mybatis.type-aliases-package=com.jiuzhm.mybatis.entity
mybatis.config-location=classpath:mybatis-config.xml

步骤三: SpringBoot集成数据Redis

#################redis基础配置#################
spring.redis.host=127.0.0.1
spring.redis.port=6379
spring.redis.pass=
spring.redis.pre=kettle_
spring.redis.maxIdle=300
spring.redis.maxActive=600
spring.redis.maxWait=1000
spring.redis.testOnBorrow=true

参考文章:SpringBoot - IDEA搭建Spring Boot整合mybatis(XMl与注解版)详解入门 - XMl扫描不到的吭

-------以上的步骤集成 让项目跑起来难度不大------

步骤四: 把之前项目全部拷贝过来,把之前项目里面的pom依赖包拷贝过来,注意要把Spring相关的依赖包删掉,redis,mybatis也删掉 因为 步骤一,二,三已经集成了相关的依赖了,然后开始一步一步的调试

这里是主要的工作量

注意:

自动配置的问题

pom.xml - properties里面
<spring.version>3.2.2.RELEASE</spring.version>

<jedis.version>2.1.0</jedis.version><mybatis.version>3.2.8</mybatis.version>

<mybatis-spring.version>1.2.2</mybatis-spring.version><jedis.version>2.1.0</jedis.version>

等等...

要注释掉 约定大于配置 内部占用了这个词 还有默认加载进去 就会报错

Redis

1.RedisServcer 类要加@Service 会告诉Spring要他来扫描管理
2.RedisServcer 注释掉构造器redisTemplate类 springboot约定大于配置 内部已经占用 redisTemplate 不能再构造这个方法 否则会启动报错

3.RedisServcer 的redisTemplate属性要用@Resource 不能用@Autuwired    springboot约定大于配置 内部已经占用 redisTemplate 可以百度一下

mybatis
吭!xml文件和mapper绑定有问题!
网上看了很多资料最后发现是intellij idea的问题,在eclipse中把mapper的xml文件放到src代码目录下是可以一起打包进classes的,而在新版intellij idea中是不会一起打包,就会导致找不到xml报错。

首先确保xml中的namespace配置是你的接口全类名,而不是包名!

解决方法

由于idea默认是不打包src中的xml文件,所以在eclipse中你可以把xml放到src中没有问题,但是在idea中,你把mapper的xml文件放到resources资源中就可以正常访问!然后配置文件里面要加上
# MyBatis 配置
mybatis.mapper-locations=classpath:mybatis/*.xml  mybatis是resource下面的一个目录

mybatis.type-aliases-package=com.jiuzhm.mybatis.entity

更多解决办法可以查看我之前一篇文章

SpringBoot - IDEA搭建Spring Boot整合mybatis(XMl与注解版)详解入门 - XMl扫描不到的吭

Jsp支持+拦截器+全局异常类配置

关键注解:@Configuration  @Bean

import com.jiuzhm.Exception.ExceptionHandle;
import com.jiuzhm.interceptor.TokenInterceptor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.multipart.commons.CommonsMultipartResolver;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
import org.springframework.web.servlet.view.InternalResourceViewResolver;
import org.springframework.web.servlet.view.JstlView;/**** Spring Boot 拦截器配置*/
@Configuration   //标注此文件为一个配置项,spring boot才会扫描到该配置。该注解类似于之前使用xml进行配置
public class ApiInterceptor extends WebMvcConfigurationSupport {@AutowiredTokenInterceptor tokenInterceptor;//否则TokenInterceptor内部无法使用注入 Autowired/*** 配置拦截器* @param registry*/@Overridepublic void addInterceptors(InterceptorRegistry registry) {registry.addInterceptor(this.tokenInterceptor).addPathPatterns("/*/**");  //对来自/user/** 这个链接来的请求进行拦截}/*** jsp路径映射* @param*/@Beanpublic InternalResourceViewResolver viewResolver(){InternalResourceViewResolver viewResolver = new InternalResourceViewResolver();viewResolver.setPrefix("/jsp/");viewResolver.setSuffix(".jsp");viewResolver.setViewClass(JstlView.class);return  viewResolver;}@Beanpublic CommonsMultipartResolver multipartResolver(){CommonsMultipartResolver multipartResolver = new CommonsMultipartResolver();return  multipartResolver;}@Beanpublic ExceptionHandle exceptionResolver(){ExceptionHandle exceptionResolver = new ExceptionHandle();return exceptionResolver;}/*** 静态资源配置* @param registry*/@Overridepublic void addResourceHandlers(ResourceHandlerRegistry registry) {registry.addResourceHandler("/frozenui/**").addResourceLocations("classpath:/frozenui/");registry.addResourceHandler("/web/**").addResourceLocations("/");super.addResourceHandlers(registry);}
}

查看原来项目application.xml里面有配置了那些 bean  我们就把这些bean按照上面的@Bean的方式给转换过来就可以了

SpringMVC转SpringBoot步骤+心得相关推荐

  1. Spring、SpringMVC、SpringBoot、SpringCloud的联系和区别

    一. 上一篇文章刚刚简单介绍了spring框架,下面我将介绍一下Spring,SpringMVC,SpringBoot,SpringCloud的联系和区别. 首先先简单介绍一下各个框架. Spring ...

  2. 【面试题】Spring,SpringMVC,SpringBoot,SpringCloud有什么区别和联系?

    介绍 Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架.基础版本只有 2 MB 左右的大小,Spring使你能够编写更干净.更可管理.并且更易于测试的代码. SpringMV ...

  3. 框架:spring、springmvc、springboot

    先来说说spring.springmvc.springboot的关系. spring boot只是一个配置工具,整合工具,辅助工具. springmvc是框架,项目中实际运行的代码 Spring 框架 ...

  4. spring、springMvc、springBoot和springCloud的联系与区别

    作者:尘光掠影  来源:CSDN  原文:https://blog.csdn.net/alan_liuyue/article/details/80656687  spring和springMvc: 1 ...

  5. springboot+jsp中文乱码_【spring 国际化】springMVC、springboot国际化处理详解

    在web开发中我们常常会遇到国际化语言处理问题,那么如何来做到国际化呢? 你能get的知识点? 使用springgmvc与thymeleaf进行国际化处理. 使用springgmvc与jsp进行国际化 ...

  6. Spring、SpringMVC、SpringBoot、SpringCloud的关系分享

    最近在做一些技术架构原型,发现Spring已经跟三四年前发生了很多的区别,技术的迭代日新月异,再不学习就赶不上时代的脚步 ,以下是最近关于Spring.SpringMVC.SpringBoot.Spr ...

  7. Spring、SpringMVC、SpringBoot、SpringCloud概述

    spring和springMvc: 1. spring是一个一站式的轻量级的java开发框架,核心是控制反转(IOC)和面向切面(AOP),针对于开发的WEB层(springMvc).业务层(Ioc) ...

  8. Spring、SpringMVC和Springboot的区别

    Spring.SpringMVC和Springboot的区别(网摘) spring boot就是一个大框架里面包含了许许多多的东西,其中spring就是最核心的内容之一,当然就包含spring mvc ...

  9. Springboot实践心得

    Springboot实践心得 刚入门Springboot,跟着B站小匠视频学习,基本上照着敲,但是实践过程中可能是因为版本的问题,在调用Request的时候出现了以下问题. 附带B站小匠视频原版地址: ...

最新文章

  1. 嵌入式学习笔记之XMODEM
  2. lookupedit选中之后的事件_姚明之后,易建联之前!曾经的国产第四中锋,为何没去成NBA?...
  3. 什么是OOA/OOD
  4. 树莓派实现AD转换(pcf8591模块)
  5. 怎么设置html编译报错,doctype html编译出错,提示unexpected character D,这是怎么回事呀?...
  6. [转]Google的60款开源项目
  7. 清除SQLServer日志
  8. JAVA JVM优化总结
  9. nested exception is java.lang.NumberFormatException: For input string: “swagger-ui.html“]
  10. shiro原理简介说明
  11. webrtc音频QOS方法四(音频接收端NACK流程实现)
  12. VL53L0X+stm32激光测距
  13. leaflet maxZoom突破18
  14. UML2.0包含的14种图
  15. 达观数据签约中国资本最强信托企业——平安信托
  16. Maven命令之--mvn help:system
  17. 谷歌浏览器设置黑暗模式的背景(不需要插件)
  18. VIVADO 设计流程介绍
  19. 最火的三亚自助游攻略
  20. 中职计算机课程教学大纲,《计算机英语》课程教学大纲(11级)

热门文章

  1. C语言system讲解
  2. 为何恢复出来的MP4视频文件打不开
  3. 网优5g前景_5G网络优化师前景怎么样?
  4. alpine linux系统操作
  5. 经方败案群20150303李小荣讲桂枝芍药知母汤
  6. Ubuntu不能连接XShell、主机Ping不通虚拟机,但虚拟机能ping通主机
  7. Go语言性能剖析利器--pprof实战
  8. Java反射底层原理以及应用
  9. 基于OpenAI的Chatbot开发记录
  10. C语言实现斐波那契数列。