文档章节

Spring Boot(1):参见Spring Boot

wjpworking
 wjpworking
发布于 2016/09/22 23:20
字数 1872
阅读 669
收藏 6

同步自我的个人博客墨语的后花园,请多多指教。


最近开始看Spring Boot相关方面的文章,主要原因还是看网上说的这家伙开发软件的速度比传统的Spring的开发要快,所以在最近学习Spring 的同时也就顺便就开始看Spring Boot的书籍了。

当然书就看了两本,一本是《Spring Boot In Action》这本书怎么说呢,可以说是一个有实例的官方文档的简单版,其中提到的Grails还是有点意思的。开始的时候这本书还没有中文版的,看的是英文版,这个痛苦啊,那就不说了,看到一半的时候中文版发售了,那个心情就更不好了。另外一本是Apress的《Pro Spring Boot》,这本书讲的比较详细,对其中使用较多的模块还是都有所涉猎的,但是里面有一些技术现在我还是没有遇到过,所有看着还是有点麻烦。马上准备去看一件官方文档,我认为上面应该会讲一些其中内容是怎能实现的。

创建项目

创建一个Spring Boot项目有三种方式:

  1. 通过官网的Start Spring Boot来进行创建,界面十分简洁,简单的配置一下就可以开始配置了开发自己的项目了 SpringBoot

  2. 使用Spring Boot CLI命令行工具来新建一个项目,简单命令为:

    spring init --build gradle demo
    

    这里是使用了Gradle为构建工具,而项目的名称则为demo,我没没有向其中添加其余的Spring 的模块,这就是最基本的Spring Boot的程序。

  3. 使用IDE自带的工具来进行配置,其实就是书写一个简单的构建文件,构建文件要么是基于Maven的,要么是基于Gradle的,不过我是推荐使用Gradle作为构建工具,主要是文件的整体结构清晰简单,就是这点就是可以值得去使用的了。

发现了没有,通过以上的方式构建开始项目的文件的方式相比以前开始开发Spring的软件的方法简单了许多,所有在选择自己需要的Spring模块后,其会将这些模块放置到构建文件中,这时候只需要使用Maven和Gradle导入这些文件到IDE中,开始构建项目,其中需要的各种依赖就会自动的引入到系统中了,这就减少了在开发系统的时候需要引入各种jar包,并且还减少了项目中各种依赖关系复杂而到中引入jar包错误的问题了。

项目结构

.
├── .gitignore 
├── build.gradle
├── gradle
│   └── wrapper
│       ├── gradle-wrapper.jar
│       └── gradle-wrapper.properties
├── gradlew
├── gradlew.bat
└── src
    ├── main
    │   ├── java
    │   │   └── top
    │   │       └── wangjinpeng
    │   │           └── DemoApplication.java
    │   └── resources
    │       └── application.properties
    └── test
        └── java
            └── top
                └── wangjinpeng
                    └── DemoApplicationTests.java

这是使用Spring Boot start页面上构建的项目页面构建的一个项目,使用了Gradle作为了构建工具,所以其直接就使用的Gradle Wrapper模块,这可以是在系统中没有Gradle的时候还能使用Gradle构建自己需要的文件项目。

剩下就十分的简单了,有一个默认的程序入口,就是DemoApplication.java,因为项目的名称为Demo,所以名称如上,其默认的命名规则为项目名Application.java。当然也是可以根据自己需要修改的。

在资源文件中一个配置文件application.properties,这个是默认的配置文件。当然,对于喜欢yaml的人,也可创建名为application.yml的文件来作为默认的配置文件。

剩下的一个文件为测试文件,这是默认提供的一个测试文件,这个不是程序必须的,所有可以去了也不会有什么问题。但是在测试驱动开发以及对于系统的正确性的要求的前提下,是必须编写测试的,编写测试可为将来的整个开发提供较好的便捷方式,以防止不小心修改代码后没有发现从而造成一个Bug。

默认依赖包

依赖文件

这是默认情况提供给我们的依赖包,我们可以发现其提供给我们了三种测试工具,Junit、Mock和hamcrest,还提供了默认的JSON处理包和yaml的处理包,提供了日志文件接口sef4j。

对于Spring的依赖包来说,除了包含Spring的核心容器aop、beans、core、expression外,还给了Spring Boot实现的源泉Spring Boot的依赖文件主要为和兴文件,日志处理,自动配置一加测试。我们最关注的就是Spring Boot的自动配置,这以后再说。

Gradle文件

Gradle文件

buildscript {
	ext {
		springBootVersion = '1.4.1.RELEASE'
	}
	repositories {
		mavenCentral()
	}
	dependencies {
		classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
	}
}

apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'spring-boot'

jar {
	baseName = 'demo'
	version = '0.0.1-SNAPSHOT'
}
sourceCompatibility = 1.8
targetCompatibility = 1.8

repositories {
	mavenCentral()
}

dependencies {
	compile('org.springframework.boot:spring-boot-starter')
	testCompile('org.springframework.boot:spring-boot-starter-test')
}

从整体上这与Maven的构建文件pom.xml还是有点相似的,都大体上分为三个部分:一个是使用的插件、一个是项目的基本信息,最后一大块则是依赖的各种文件包。

不过对于整个build.gradle文件来说,我们只需要注意三点:

  1. Spring Boot的版本是自己选定的,当发现官网的构建页面不能选择自己需要的版本的时候,可以自己修改构建文件中的springBootVersion后的内容。当然这里面的版本号当然也是Spring Boot这个项目曾经出现过的,不然在maven中心仓库中是没有的,会直接报错。当然需要升级的时候也是可以直接修改这个标识,然后从新构建整个项目就可以了。
  2. 依赖的文件包可以直接写在dependencies中。不过这里的书写方式还是与以前的有一些区别,这里的依赖文件没有版本号。这样的好处是我们不需要关系我们所使用的依赖是哪一个版本的,每一从新构建的时候都会将相关的文件升级到最新的版本,我们不需要处理相关内容。这也是会带来许多的问题,就是需要一些老的包来进行构建,这时候我们可将这些独立的包的内容直接书写,插件会解决大部分的问题。
  3. 如果是直接使用的Spring的组件,则可以没有必要书写使用这个模块的版本号,而对于其余的依赖,还是需要写上版本号,以避免重新构建是整个系统的依赖关发生错误从而导致需要重新编写整个项目的事情。

源文件

DemoApplication.java:

@SpringBootApplication
public class DemoApplication {

	public static void main(String[] args) {
		SpringApplication.run(DemoApplication.class, args);
	}
}

DemoApplicationTests.java:

@RunWith(SpringRunner.class)
@SpringBootTest
public class DemoApplicationTests {

	@Test
	public void contextLoads() {
	}

}

看过这两个文件之后我们会发现,在application.properties文件为空的情况下还是可以进行运行部署和对系统的测试,是什么样的技术实现的呢?其实就是两个注解:

  1. @SpringBootApplication
  2. @SpringBootTest

一个表示了这是一个Spring Boot的入口文件,表明这是一个Spring Boot程序。另一个则表示这个是一个Spring Boot的测试文件。对于这两个注解的特殊用处,我明天会继续书写。

其他

更多博文请看都比人的博客

© 著作权归作者所有

wjpworking
粉丝 6
博文 12
码字总数 19808
作品 0
朝阳
程序员
私信 提问
Spring Cloud Finchley.SR1 的学习与应用 3 - 项目架构

项目架构 项目结构 parent-woqu 创建parent-woqu项目,统一管理项目依赖 pom.xml framework-woqu 创建framework-woqu项目,用来管理项目框架和基础项目 model-woqu 各项目共用model的jar包 ...

张shieppp
2018/11/21
41
0
spring boot 自定义 starter

本文用于 spring boot starter 开发。源码参见 https://gitee.com/emperors/spring-boot-integration/tree/master/hello-spring-boot-starter 本工程依赖 服务。 自动配置类 自动加载配置 re...

翱翔fly
2018/06/28
59
0
为springboot项目添加springboot-admin监控

我们知道spring-boot-actuator暴露了大量统计和监控信息的端点,spring-boot-admin 就是为此提供的监控项目。 先来看看大概会提供什么样的功能 从图中可以看出,主要内容都是由spring boot a...

ryan-miao
2018/06/12
0
0
Spring Boot的启动器Starter详解

Spring Boot的启动器Starter详解 Spring Boot应用启动器基本的一共有44种,具体如下: 1)spring-boot-starter 这是Spring Boot的核心启动器,包含了自动配置、日志和YAML。 2)spring-boot...

anlve
2018/02/22
195
0
spring boot框架学习7-spring boot的web开发(3)-自定义消息转换器

http://kaigejava.com/article/list?cateid=3 本章节主要内容: 通过前面的学习,我们了解并快速完成了spring boot第一个应用。spring boot企业级框架,那么spring boot怎么读取静态资源?如...

中凯_凯哥java
2017/11/09
71
0

没有更多内容

加载失败,请刷新页面

加载更多

nginx访问日志/日志切割/静态文件过期时间/防盗链

Nginx访问日志主要记录部署在nginx上的网站访问数据,日志格式定义在nginx主配置文件中。 nginx主配置文件:/etc/nginx/nginx.conf 查看nginx主配置文件: ```markup [root@linux ~]# cat /e...

asnfuy
刚刚
0
0
JS_高程4.变量,作用域和内存问题(2)执行环境及作用域

本文转载于:专业的前端网站➨JS_高程4.变量,作用域和内存问题(2)执行环境及作用域 1.执行环境:执行环境定义了变量或函数有权访问的其他数据,决定了它们各自的行为,       每个执...

前端老手
4分钟前
2
0
手机迅雷下载的文件,电脑上找不到问题

不知道手机迅雷怎么做到的,手机迅雷下载的文件,手机上可以看的到 但连电脑后, 电脑上看不到文件 . 尝试了打开查看隐藏文件, 但没有效果 . 手机上查询文件权限 也是对的 . 可读,可写, 不隐藏 ...

ol_O_O_lo
6分钟前
1
0
python学习11:Python tuple元组详解

元组是 Python 中另一个重要的序列结构,和列表类似,也是由一系列按特定顺序排序的元素组成。和列表不同的是,列表可以任意操作元素,是可变序列;而元组是不可变序列,即元组中的元素不可以...

太空堡垒185
18分钟前
3
0
Java实现数据结构之线性结构

一、顺序表 顺序表本质是使用数组储存数组的一种数据结构,在计算机的储存中是连续的分配内存的。 下面是我自己使用java实现的简单顺序表结构 package list; public class MyArrayList<E> { ...

daxiongdi
21分钟前
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部