最近要开始开发一个Springboot+AngularJS+Docker的APP,提前熟悉下Springboot。Springboot字面意思是Spring引导。顾名思义,他还是Spring,只不过是换了种玩法。做过SpringMVC的都会吐槽Spring的配置实在是太繁琐了,SpringMvc的项目没有几个XML是搞不定的,虽说有注解方法来简化,可还是十分繁琐。Springboot的出现一方面就是为了简化这个难题。这是官方文档连接,适合我这样的新手从头学,官方文档: http://docs.spring.io/spring-boot/docs/1.4.0.RELEASE/reference/htmlsingle/
废话少说,概念啥的就不说了。直接开始,我们先要确保本地已经有maven环境,没有的话官网下载一个,配置一下环境变量(maven_home和PATH)。如何查看是否已经有maven,cmd控制台打一下这个命令,mvn -v,出现这个类似的结果说明已经安装了.
先看一下刚刚运行成功的截图:
出现这样的结果说明我们的应用启动成功了。
好了,我的运行环境时java8+maven3.5.2(jdk最好是1.6以上的,1.7,1.8都可以,1.6的会有问题,需要其他配置,需要指定java version以及tomcat的version);
写一个Springboot应用基本不用管配置文件,只需要一个pom.xml就可以搞定(当然关联数据库或者其他比较复杂的应用还是会需要.properties;来配置的,这里只是个demo),下面是程序目录结构:
我们所关心的只有一个pom.xml,这里面包含了所有springboot应用需要的依赖。pom.xml内容如下:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.sgx</groupId>
<artifactId>SpringBoot</artifactId>
<packaging>war</packaging>
<version>0.0.1-SNAPSHOT</version>
<name>SpringBoot Maven Webapp</name>
<url>http://maven.apache.org</url>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.3.0.BUILD-SNAPSHOT</version>
</parent>
<repositories>
<repository>
<id>spring-snapshots</id>
<url>http://repo.spring.io/snapshot</url>
<snapshots><enabled>true</enabled></snapshots>
</repository>
<repository>
<id>spring-milestones</id>
<url>http://repo.spring.io/milestone</url>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>spring-snapshots</id>
<url>http://repo.spring.io/snapshot</url>
</pluginRepository>
<pluginRepository>
<id>spring-milestones</id>
<url>http://repo.spring.io/milestone</url>
</pluginRepository>
</pluginRepositories>
<build>
<finalName>SpringBoot</finalName>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>springloaded</artifactId>
<version>1.2.0.RELEASE</version>
</dependency>
</dependencies>
</plugin>
</plugins>
</build>
</project>
org.springframework.boot
groupId
。
通常,让你的Maven POM文件继承 spring-boot-starter-parent,并声明一个或多个 Starter POMs依赖即可。 我们这里就是这样做的。 starter-web支持web应用,loaded支持热部署,即使修改了java代码,只需要保存一下即可,不需要重启。会自动加载已经修改的类。 maven-plugin的引入使得应用可以被打成jar包或者war包发布出去。
相比Spring配置的复杂度来说,Springboot真是省了不少事。但是我今天一天才弄出了个Helloworld,每次都在提示pom.xml里面的spring-boot-starter-parent有问题,
然后jdk重装,maven重新下载了,还参考了网上别人的做法才捣鼓出来了这个。。