文档章节

边学边写 Spring Boot (一)配置

LovePros
 LovePros
发布于 2017/04/19 17:22
字数 829
阅读 34
收藏 0

一、Gradle 的配置就不说,前面讲过了。

二、环境:jdk1.8,Intellij IDEA。

三、根项目( sp-boot ) build.gradle 代码:

// buildscript 代码块中的声明是gradle脚本自身需要使用的资源
// buildscript 代码块外的声明是项目需要使用的资源
// 注意:gradle在执行脚本时,会先执行buildscript代码块中的内容
buildscript {
    // 项目的扩展属性(定义时需要 ext,读取时可直接使用属性名)
    // 单独定义版本号,方便以后版本的更改
    ext {
        springBootVersion = '1.5.2.RELEASE'
    }

    // 资源仓库,按顺序搜索包,直到获取到包
    repositories {
        // 本地缓存
        mavenLocal()
        // 阿里云 maven 库
        maven {
            name 'aliyun maven'
            url 'http://maven.aliyun.com/nexus/content/groups/public/'
        }
        // 默认 maven 中心库
        mavenCentral()
    }

    // 执行其他脚本时可使用的包(注意不是项目使用的)
    dependencies {
        // 加载 spring-boot-gradle-plugin 插件(作用见后面的提示)
        classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
    }
}

// 项目信息
group 'demo.sp'
version '1.0-SNAPSHOT'

// 所有项目(包括根项目)的设置
allprojects {
    apply plugin: 'java'
    // 应用前面定义好的 spring-boot-gradle-plugin 插件
    apply plugin: 'org.springframework.boot'

    sourceCompatibility = 1.8

    repositories {
        mavenLocal()
        maven {
            name 'aliyun maven'
            url 'http://maven.aliyun.com/nexus/content/groups/public/'
        }
        mavenCentral()
    }
}

// 所有子项目的设置
subprojects {
    dependencies {
        // 注意没有版本号但能成功编译,因为 spring-boot-gradle-plugin 插件
        // 开发用的工具类,热加载
        compile("org.springframework.boot:spring-boot-devtools")
        testCompile('org.springframework.boot:spring-boot-starter-test')
    }
}

 1、注意  apply plugin: 'org.springframework.boot' 插件,必须在 buildscript 代码块中加载才能找到,作用:

The Spring Boot gradle plugin provides many convenient features:

    It collects all the jars on the classpath and builds a single, runnable "über-jar", which makes it more convenient to execute and transport your service.

     It searches for the public static void main() method to flag as a runnable class.

     It provides a built-in dependency resolver that sets the version number to match Spring Boot dependencies. You can override any version you wish, but it will default to Boot’s chosen set of versions.

       显而易见的好处是提供 Spring Boot 依赖包时可以省略版本号,直接在 buildscript  中定义好就可以(我的理解,可能理解不全面)。

四、子项目(doc-web) build.gradle 很简单,因为通用的设置在根目录的 allprojects 和 subprojects 中。

group 'demo.sp'
version '1.0-SNAPSHOT'

dependencies {
    compile("org.springframework.boot:spring-boot-starter-web")
}

五、根项目( sp-boot ) settings.gradle 代码:

rootProject.name = 'sp-boot'
include 'doc-web'

六、子项目源文件  SpSearchApplication.java

package sp.boot;

// 省略 import

@SpringBootApplication
public class SpSearchApplication {

	public static void main(String[] args) {
		SpringApplication.run(SpSearchApplication.class, args);
		System.out.println("VVVVVV");
	}
}

********************************************************************************************************

目前为止,目录结构如下:

\---sp-boot
    |   build.gradle (根项目脚本)
    |   settings.gradle (设置项目的层次结构等)
    |
    +---.gradle
    |
    +---.idea
    |   |
    |   +---dictionaries
    |   |
    |   +---inspectionProfiles
    |   |
    |   +---libraries
    |   |
    |   \---modules
    |       |   doc-web.iml
    |       |   sp-boot.iml
    |       |   sp-boot_main.iml
    |       |   sp-boot_test.iml
    |       |
    |       \---doc-web
    |               doc-web_main.iml
    |               doc-web_test.iml
    |
    \---doc-web
        |   build.gradle (子项目脚本)
        |
        +---build (编译文件夹)
        |   +---classes
        |   |   \---main
        |   |       \---sp
        |   |           \---boot
        |   |                   SpSearchApplication.class
        |   |
        |   \---resources
        |       \---main
        |               application.properties
        |
        \---src (源文件夹)
            \---main
                +---java
                |   \---sp
                |       \---boot
                |               SpSearchApplication.java
                |
                \---resources
                    |   application.properties
                    |
                    +---static
                    \---templates

正常情况下运行 SpSearchApplication.java 控制台将输出成功的信息。太长太多就不列出来了,最后成功会打印出 VVVVVV (代码中自定义输出)

********************************************************************************************************

小提示:

       1、我的Intellij IDEA spring boot 日志输出没有颜色提示,多点色彩多好,可能是Intellij IDEA设置问题(另一台电脑的默认设置,输出就带色的),另一种方法时在 resources/application.properties 中设置:

spring.output.ansi.enabled = ALWAYS

       2、Intellij IDEA 的热加载好像不起作用(spring-boot-devtools),两处设置:

       (1)选择[ File ] -> [ Settings ] -> [ Build, Execution, Deployment ] -> [ Compiler ], 右侧 < Build project automatically > 勾上,确认;

        (2)组合键[ Ctrl + Alt + Shift + / ],注意四个按键(还好不常用), 选择[ 1 Registry ... ],找到 [ compiler.automake.allow.when.app.running ] 勾上;

         重启应用就可以了。

© 著作权归作者所有

LovePros
粉丝 0
博文 8
码字总数 7709
作品 0
丰都
私信 提问
Spring Boot中整合Sharding-JDBC读写分离示例

在我《Spring Cloud微服务-全栈技术与案例解析》书中,第18章节分库分表解决方案里有对Sharding-JDBC的使用进行详细的讲解。 之前是通过XML方式来配置数据源,读写分离策略,分库分表策略等,...

尹吉欢
2018/08/31
0
0
Spring Boot [集成-Shiro]

导读: 在阅读这篇文章之前假设你已经对Apache Shiro(后面统一用Shiro作为代指)有了一定的了解,如果你还对Shiro不熟悉的话在这篇文章的结尾附有相关的学习资料,关于Shiro是用来做什么的这里...

yangrd
2018/08/27
0
0
spring boot框架学习学前掌握之重要注解(4)-通过注解方式读取外部资源配置文件2

本节主要内容: 1:思考问题:怎么读取多个配置文件,如果文件不存在怎么办 2:配置数据库连接池 声明: 本文是《凯哥陪你学系列-框架学习之spring boot框架学习》中spring boot框架学习学前掌...

凯哥java
2017/10/24
0
0
spring boot框架学习4-spring boot核心(3)

本节主要: 1:spring boot 为我们提供的 starter pom 都有哪些 2:怎么添加xml配置文件 3:日志相关 本文是《凯哥陪你学系列-框架学习之spring boot框架学习》中第四篇 spring boot框架学习...

凯哥java
2017/10/31
0
0
Spring Boot 1.X和2.X优雅重启实战

项目在重新发布的过程中,如果有的请求时间比较长,还没执行完成,此时重启的话就会导致请求中断,影响业务功能,优雅重启可以保证在停止的时候,不接收外部的新的请求,等待未完成的请求执行...

尹吉欢
2018/05/20
0
0

没有更多内容

加载失败,请刷新页面

加载更多

程序员随想-关于分享

最早的时候,文字是贵族这些上层人士才会学习的,底层人士没有资格和渠道去学习,同样用文字、图像等其他载体承载的知识大部分也只有贵族阶层才能享受的。后来有了造纸术、印刷术,成本降低,...

Lubby
44分钟前
1
0
聊聊hibernate的session-level repeatable reads

序 本文主要研究一下hibernate的session-level repeatable reads 实例 doInTransaction(session -> { Product product = new Product(); product.setId(1L); product.setQuanti......

go4it
56分钟前
1
0
ubuntu或ubuntu kylin优麒麟中安装QQ、wechat微信、百度网盘

从中国国内的地址下载deepin wine,码云上的。这样网速比较快。然后,按照说明向下安装。 https://gitee.com/wszqkzqk/deepin-wine-for-ubuntu...

gugudu
今天
2
0
基于redis分布式锁实现“秒杀”

最近在项目中遇到了类似“秒杀”的业务场景,在本篇博客中,我将用一个非常简单的demo,阐述实现所谓“秒杀”的基本思路。 业务场景 所谓秒杀,从业务角度看,是短时间内多个用户“争抢”资源...

别打我会飞
今天
15
0
Zookeeper的实践指南

本章重点 1.数据存储2.基于Java API初探Zookeeper的使用3.深入分析Watcher机制的实现原理4.Curator客户端的使用,简单高效 数据存储 事务日志快照日志运行时日志 bin/zookeepe...

须臾之余
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部