SpringBoot项目实战,附源码

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)
    @ResponseBody
    public 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

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

  • 6
    点赞
  • 52
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
SpringBoot实战(第4版)清晰文字版,第 1 章 入门 ................................................ 1 1.1 Spring 风云再起 ........................................ 1 1.1.1 重新认识 Spring ............................ 2 1.1.2 Spring Boot 精要 ........................... 3 1.1.3 Spring Boot 不是什么 ................... 6 1.2 Spring Boot 入门 ....................................... 6 1.2.1 安装 Spring Boot CLI .................... 7 1.2.2 使用 Spring Initializr 初始化 Spring Boot 项目 .......................... 10 1.3 小结 ......................................................... 18 第 2 章 开发第一个应用程序 .................... 19 2.1 运用 Spring Boot ..................................... 19 2.1.1 查看初始化的 Spring Boot项目 .......................................... 21 2.1.2 Spring Boot 项目构建过程 解析 .............................................. 24 2.2 使用起步依赖 .......................................... 27 2.2.1 指定基于功能的依赖 ................... 28 2.2.2 覆盖起步依赖引入的传递依赖 .... 29 2.3 使用自动配置 .......................................... 30 2.3.1 专注于应用程序功能 ................... 31 2.3.2 运行应用程序 .............................. 36 2.3.3 刚刚发生了什么 ........................... 38 2.4 小结 ......................................................... 41 第 3 章 自定义配置 .................................... 42 3.1 覆盖 Spring Boot 自动配置 ..................... 42 3.1.1 保护应用程序 .............................. 43 3.1.2 创建自定义的安全配置 ............... 44 3.1.3 掀开自动配置的神秘面纱 ........... 48 3.2 通过属性文件外置配置 ........................... 49 3.2.1 自动配置微调 .............................. 50 3.2.2 应用程序 Bean 的配置外置 ......... 55 3.2.3 使用 Profile 进行配置 .................. 59 3.3 定制应用程序错误页面 ........................... 62 3.4 小结 ......................................................... 64 第 4 章 测试 ............................................... 66 4.1 集成测试自动配置 .................................. 66 4.2 测试 Web 应用程序 ................................. 68 4.2.1 模拟 Spring MVC ........................ 69 4.2.2 测试 Web 安全 ............................. 72 4.3 测试运行中的应用程序 ........................... 74 4.3.1 用随机端口启动服务器 ............... 75 4.3.2 使用 Selenium 测试 HTML 页面 ............................................. 76 4.4 小结 ......................................................... 78 第 5 章 Groovy 与 Spring Boot CLI ......... 80 5.1 开发 Spring Boot CLI 应用程序 .............. 80 5.1.1 设置 CLI 项目 .............................. 81 5.1.2 通过 Groovy 消除代码噪声 ......... 81 5.1.3 发生了什么 .................................. 85 5.2 获取依赖 .................................................. 86 5.2.1 覆盖默认依赖版本 ....................... 87 5.2.2 添加依赖仓库 .............................. 88 5.3 用 CLI 运行测试 ...................................... 89 5.4 创建可部署的产物 .................................. 91 5.5 小结 ......................................................... 91 第 6 章 在 Spring Boot 中使用 Grails ...... 93 6.1 使用 GORM 进行数据持久化 ................. 93 2 目 录 6.2 使用 Groovy Server Pages 定义视图 ....... 98 6.3 结合 Spring Boot 与 Grails 3 ................. 100 6.3.1 创建新的 Grails 项目 ................. 100 6.3.2 定义领域模型 ............................ 103 6.3.3 开发 Grails 控制器 ..................... 104 6.3.4 创建视图 .................................... 105 6.4 小结 ....................................................... 107 第 7 章 深入 Actuator .............................. 108 7.1 揭秘 Actuator 的端点 ............................ 108 7.1.1 查看配置明细 ............................ 109 7.1.2 运行时度量 ................................ 115 7.1.3 关闭应用程序 ............................ 121 7.1.4 获取应用信息 ............................ 121 7.2 连接 Actuator 的远程 shell .................... 122 7.2.1 查看 autoconfig 报告 ........... 123 7.2.2 列出应用程序的 Bean ............... 124 7.2.3 查看应用程序的度量信息 ......... 124 7.2.4 调用 Actuator 端点 .................... 125 7.3 通过 JMX 监控应用程序 ....................... 126 7.4 定制 Actuator......................................... 128 7.4.1 修改端点 ID ............................... 128 7.4.2 启用和禁用端点 ........................ 129 7.4.3 添加自定义度量信息 ................. 129 7.4.4 创建自定义跟踪仓库 ................. 132 7.4.5 插入自定义健康指示器 ............. 134 7.5 保护 Actuator 端点 ................................ 136 7.6 小结 ....................................................... 138 第 8 章 部署 Spring Boot 应用程序 ........ 139 8.1 衡量多种部署方式 ................................ 139 8.2 部署到应用服务器 ................................ 140 8.2.1 构建 WAR 文件 ......................... 141 8.2.2 创建生产 Profile ........................ 142 8.2.3 开启数据库迁移 ........................ 145 8.3 推上云端 ............................................... 150 8.3.1 部署到 Cloud Foundry ............... 150 8.3.2 部署到 Heroku ........................... 153 8.4 小结 ....................................................... 155 录 A Spring Boot 开发者工具.............. 157 录 B Spring Boot 起步依赖 ................. 163 录 C 配置属性 ...................................... 169 录 D Spring Boot 依赖 ......................... 202

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值