SpringBoot2.0笔记

(一)SpringBoot基本操作——环境搭建及项目创建(有demo)

(二)SpringBoot基本操作——使用IDEA打war包发布及测试

(三)SpringBoot基本操作——SpringBoot整合SpringDataJpa(有demo)

(四)SpringBoot基本操作——SpringBoot使用RedisTemplate整合Redis(有demo)

(五)SpringBoot基本操作——SpringBoot使用Jedis整合Redis(有demo)

(六)SpringBoot基本操作——SpringBoot使用Junit4单元测试(有demo)

(七)SpringBoot基本操作——SpringBoot整合Shiro权限管理(完整demo+界面)

本文使用idea工具构建Springboot2.0+SpringMvc+Thymeleaf+SpringDataJPA+MySql+Redis项目

GitHub地址:https://github.com/jwwam/springbootDemo.git

此demo可直接下载运行,以下为具体创建项目过程步骤说明和遇到问题解决方法。

一、构建SpringBoot项目

1.使用idea创建Springboot项目,选择SpringInitializr选好jdk版本点击下一步

2.填写项目包名及java版本

3.勾选你需要的项目组件,Springboot版本我使用2.0

Lombok可以简化代码量,提供注解方式代替重复性代码,非必须,用不用看情况,有时候很方便,新手不建议用

4.创建web项目所以勾选Web

5.模板语言勾选Thymeleaf,这个没得说,springboot官方推荐,确实很好用,当然是指3.0版本,老版本性能有短板

6.数据库持久化推荐使用JPA方式,MySQL看情况选择

7.Nosql我这里使用Redis,看你需要,可不勾选,后续需要时再引入

8.MQ可根据自己情况选择,我这里不需要,最后I/O需要一个发邮件的服务,不用的话也不需要勾选,可后续再引入

9.下一步填写项目文件名称

10.Finish后进入项目,然后漫长的等待一段时间后项目会构建完成

二、启动SpringBoot项目

1.项目加载完毕之后打开启动器DemoApplication右键run可直接启动项目,或者右上方直接启动DemoApplication

2.不出意外的话可以直接启动不会报错,没啥好说的,我列一下可能会出现的问题,这些问题基本都是由于前面勾选项目组件(即jpa,mysql等)时引入了需要启动注入的一些依赖或数据源缺失引起的和Springboot版本也有很大的关系,以下报错不一定会出现。

(1)启动报错:Failed to configure a DataSource: 'url' attribute is not specified and no embedd

问题原因:新项目未做相关数据源配置, 启动springboot找不到配置引起

解决办法(选一即可):

① 启动类DemoApplication加入注解@SpringBootApplication(exclude = DataSourceAutoConfiguration.class)

禁止自动加载数据源配置

② 手动添加数据源,在application.properties加入以下配置:

#数据源
spring.datasource.url=jdbc:mysql://localhost:3306/demo_test?useUnicode=true&zeroDateTimeBehavior=convertToNull&autoReconnect=true
spring.datasource.username=root
spring.datasource.password=1234
spring.datasource.driver-class-name=com.mysql.jdbc.Driver

(2)启动报错:At least one JPA metamodel must be present!

问题原因:Springboot自动加载持久化bean,即自动加载jpa的bean造成

解决办法(选一即可)

① 启动类DemoApplication加上以下注解

@EnableAutoConfiguration(exclude={JpaRepositoriesAutoConfiguration.class //禁止springboot自动加载持久化bean
})

② pom加入或更改jpa启动包,按照以下格式

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-jpa</artifactId><exclusions><exclusion><groupId>org.hibernate</groupId><artifactId>hibernate-entitymanager</artifactId></exclusion><exclusion><groupId>org.hibernate</groupId><artifactId>hibernate-core</artifactId></exclusion></exclusions>
</dependency>
<dependency><groupId>org.hibernate</groupId><artifactId>hibernate-core</artifactId><version>5.2.10.Final</version>
</dependency>

pom重新导入就好了,启动项目也不再报错。

三、Hello World页面显示及Json数据回传

1.增加一个测试控制层和页面,添加测试类FirstController.java

package com.springboot.demo.controller;import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;import javax.servlet.http.HttpServletRequest;/*** @ClassName: FirstController* @Auther: zhangyingqi* @Date: 2018/8/23 17:53* @Description: 测试页面跳转*/
@Controller
@RequestMapping(value="/first")
public class FirstController {@RequestMapping(value="/view")public String view(HttpServletRequest request){return "/demoPage/firstPage";}
}

2.添加测试页面 firstPage.html

<!DOCTYPE html>
<html lang="zh-CN" xmlns:th="http://www.thymeleaf.org">
<head>
<title>Hello</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body><div>Hello World!</div>
</body>
</html>

3.目录结构

4.到这里启动后就能访问到测试页面了,后面我需要加入统一日志和统一返回格式处理,都是在真实开发环境下必须的,所以我也列出来

在com.springboot.demo.base.controller包下新建BaseController.java,用来提供日志接口以及返回model的固定参数格式

package com.springboot.demo.base.controller;import com.springboot.demo.base.utils.StateParameter;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.ui.ModelMap;public abstract class BaseController{protected final String success = StateParameter.SUCCESS;protected final String  fail = StateParameter.FAULT;protected final Logger logger = LoggerFactory.getLogger(this.getClass());public ModelMap getModelMap(String status,Object data,String msg){ModelMap modelMap=new ModelMap();modelMap.put("status", status);modelMap.put("data", data);modelMap.put("msg", msg);return modelMap;}}

在com.springboot.demo.base.utils包下新建StateParameter.java

package com.springboot.demo.base.utils;public class StateParameter {public final static String SUCCESS="1";public final  static String  FAULT="0";public final static String DATA="data";public final static String STATE="state";}

目录结构如图:

5.添加简单日志记录,修改控制层代码,加入logger日志记录,添加back方法返回json数据,返回getModelMap传入状态值一般页面js接收用来判断操作成功或失败,data参数下方为null,一般传入想返回的数据内容如对象等,最后一个参数msg为提示信息。

@Controller
@RequestMapping(value="/first")
public class FirstController extends BaseController{@RequestMapping(value="/view")public String view(HttpServletRequest request){logger.info("进入测试页面");return "/demoPage/firstPage";}@RequestMapping(value="/back", method = RequestMethod.POST)@ResponseBodypublic ModelMap back(HttpServletRequest request){logger.info("进入json测试页面");return getModelMap(StateParameter.SUCCESS, null, "请求成功");}}

打开浏览器输入:localhost:8080/first/view 测试页面正常跳转

打开RESTClient浏览器插件测试json数据返回正常(如没有插件可更改请求为get接收,直接在浏览器请求back路径即可返回json数据),输入 http://localhost:8080/first/back 返回我们设定的 msg:请求成功

查看控制台输出日志,关于Springboot项目结合AOP和logback日志持久化入库可以查看我的这篇文章。

全文完,2018/8/23

写博文不易,转载请注明出处。

SpringBoot项目实战,附源码相关推荐

  1. Django项目实战(附源码免费下载)

    制作图书管理系统(末尾附源码) 第一步先更改settings.py里面的必要配置,更改或附件项如下 INSTALLED_APPS = ['django.contrib.admin','django.c ...

  2. android项目实战博学谷源码_阿里爆款SpringBoot项目实战PDF+源码+视频分享

    前言 关于SpringBoot网络上有太多的博客跟资料,其影响力想必不用我多说了.它作为当前最流行的微服务框架,不但使用更加简单,而且功能更加丰富.性能更加稳定和健壮.其"约定大于配置&qu ...

  3. 【首次分享】企业级车载系统开发指南+项目实战(附源码)

    前言 Android 现在已经拥有十分成熟的开发体系,成熟也说明了这个系统的带来的开发红利消退了,说通俗点就是可以跳槽岗位少了,随着最近几年小程序和公众号崛起,让app应用需求量断崖式下降.所以现在更 ...

  4. python网络爬虫技术 江吉彬下载 pdf_精通Python网络爬虫:核心技术、框架与项目实战 附源码 中文pdf完整版[108MB]...

    精通Python网络爬虫这是一本实战性的网络爬虫秘笈,不仅讲解了如何编写爬虫,而且还讲解了流行的网络爬虫的使用. 全书分为4个部分:第壹部分对网络爬虫做了概要性的介绍,主要介绍了网络爬虫的常识和所涉及 ...

  5. 熬夜整理出了70个清华大佬都在用的Python经典练手项目【附源码】

    我们都知道,不管学习那门语言最终都要做出实际的东西来,而对于编程而言,这个实际的东西当然就是项目啦,不用我多说大家都知道学编程语言做项目的重要性. 于是,小编熬了几个通宵,终于整理出了70个清华大佬都 ...

  6. 66个Python练手项目,附源码

    前言: 不管学习哪门语言都希望能做出实际的东西来,这个实际的东西当然就是项目啦,不用多说大家都知道学编程语言一定要做项目才行. 这里整理了66个Python实战项目列表,都有完整且详细的教程,你可以从 ...

  7. ASR项目实战-从源码开始构建Kaldi

    ASR项目实战-从源码开始构建Kaldi 准备工作 安装构建时依赖的基础软件 软件清单如下: bzip2 python3 automake libtool cmake gcc g++ gfortran ...

  8. 一头扎进SpringBoot视频教程(附源码与文档)

    目录:/099 一头扎进SpringBoot视频教程(附源码与文档) ┣━━<一头扎进SpringBoot>第八讲.mp4 ┣━━<一头扎进SpringBoot>第八讲源码及文 ...

  9. 百看不如一练,55个Java练手项目(附源码+视频教程),全都在这里了

    我们都知道,不管学习那门语言最终都要做出实际的东西来,而对于编程而言,这个实际的东西当然就是项目啦,不用我多说大家都知道学编程语言做项目的重要性. 于是,我熬了几个通宵,终于整理出了55个培训机构内部 ...

  10. java web网上商城项目实战与源码

    java web网上商城项目实战与源码 点击这里,轻松完成毕设https://x-x.fun/i/AAbf595445aBT

最新文章

  1. 2018icpc南京网络赛L题Magical Girl Haz(dijkstra+dp)
  2. 请重新认识你作为程序员的价值
  3. SharePoint 2010 change home page或者default page
  4. 9款基于CSS3 Transitions实现的鼠标经过图标悬停特效
  5. SQL Server 2008下日志清理方法
  6. 互联生活:业务模式聚焦
  7. java 2和java有什么区别
  8. SpringBoot-配置文件创建Bean的过程
  9. DSP课设项目(ICETEK-VC5509-EDU)
  10. 关于三极管处于临界饱和状态的分析
  11. delphi 类的写法 和 控制台程序的制作---深入Delphi编程 数据库
  12. 小学生可以学java编程吗_小学生学编程都要学习哪些内容 家长们知道吗
  13. cdn回源php_简述回源原理和CDN缓存
  14. lzg_ad:Windows Embedded Standard 安装说明
  15. win10迁移C盘Administrator目录
  16. 互联网行业定制网站需要多少钱
  17. oracle outsidein,Oracle Outside In远程代码执行漏洞
  18. 小米钱包笔试算法2020-12
  19. 赚钱,一定要对自己狠
  20. QT中打开网址或者html文件

热门文章

  1. 版本名称SNAPSHOT、alpha、beta、release、GA含义
  2. 条件查询(where)——MySQL
  3. 《你不知道的JavaScript》学习佛系梳理
  4. 佛系前端面试题记录--第二周
  5. python输入整数_限制输入整数的5种情况(学数学学Python编程)
  6. H5链接跳转到微信小程序开发流程记录
  7. wordpress建站我们如何选择虚拟主机和VPS服务器呢?
  8. linux下安装nginx
  9. python复数运算程序_python复数及计算法则
  10. 用python编写程序实现分段函数的计算_编写程序,实现分段函数计算,如下表所示。 x y x0 0 0=x5 x 5=x10 3x-5 10=x20 0.5x-2 20=x 0_学小...