【无为则无心&SpringBoot】— 4.创建第一个Sprin
1、步骤
-
创建一个Spring Boot的java项目。
-
导入依赖Spring Boot相关的依赖。
-
编写一个java类,用于启动Spring Boot项目(helloword.java)。
-
编写相关业务类(hellocontroller.java)。
-
运行helloword.java中的main函数,启动Spring Boot项目。
-
通过浏览器访问Spring Boot项目。
2、操作
(1)创建一个Spring Boot的java项目
具体可以看博客:https://www.jianshu.com/p/9e9a2613e901,不通过骨架创建Maven的Java项目。文章里已经总结好。
(2)导入依赖Spring Boot相关的依赖
在项目中的pom.xml文件中,添加下面内容,配置Spring Boot相关依赖。
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.9.RELEASE</version>
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
(3)编写一个java类,用于启动Spring Boot项目
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
/**
* 用来来标注一个java的主程序类,
* 说明这是一个Spring Boot应用。
*/
@SpringBootApplication
public class helloword {
public static void main(String[] args) {
// Spring应用启动起来
SpringApplication.run(helloword.class,args);
}
}
(4)编写相关业务类
业务类就是需要我们写的Controller层、Service层。
我们这里只写一个Controller层,能够返回一个数据就可以。
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
@Controller
public class hellocontroller {
@ResponseBody
@RequestMapping("/hello")
public String hello() {
return "Hello Spring Boot!";
}
}
(5)运行helloword.java中的main函数,启动Spring Boot项目
我们不用在IDEA中配置tomcat服务器,只有就可以运行main()函数。
可以看到控制台结果如下,开启了一个8080端口的tomcat服务器。
(6)通过浏览器访问Spring Boot项目
在浏览器中输入访问地址:localhost:8080/hello
可以看到输出了Hello Spring Boot!
,表示Spring Boot项目创建成功,并运行起来。
是不是非常的方便,我们根本不需要做过多的配置,如SpringMVC的包扫描、视图解析器、前端控制器等都不需要进行配置了。
(7)Spring Boot部署非常简化
在部署的时候Spring Boot项目部署起来也非常方便,如果我们所在的服务器中,没有配置tomcat之类的Servlet容器。我们可以把Spring Boot项目打成一个可执行的jar包。通过java -jar 包名.jar
直接运行Spring Boot项目。
- 在Maven的pom.xml文件中配置打jar包插件。
spring-boot-maven-plugin
插件,在很大程度上简化了应用的部署,只需要安装了 JRE 就可以运行。
<!-- 将应用打包成一个可执行的jar包;-->
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>1.5.4.RELEASE</version>
</plugin>
</plugins>
</build>
- 执行Maven的打包命令
在项目的target
目录就能找到打包好的项目spring-boot-01-helloword-1.0-SNAPSHOT.jar
。
-
执行
java -jar
命令启动项目我们可以把Spring Boot项目的jar包放到一个方便执行的地方,来执行命令。
- 在浏览器中访问项目
可见Spring Boot中部署一个项目是非常的方便。
(8)关于spring-boot-maven-plugin
插件的总结
spring-boot-maven-plugin
插件介绍
Spring Boot Maven plugin能够将Spring Boot应用打包为可执行的jar或war文件,然后以java -jar
命令的方式运行Spring Boot应用。Spring Boot Maven plugin在2017.6.8发布的1.5.4.RELEASE
版本,要求Java 8, Maven 3.2及以后。(需要配置阿里云Maven镜像仓库)
Spring Boot Maven plugin的5个Goals(目标)
- spring-boot:repackage,默认goal。在mvn package之后,再次打包可执行的jar/war,同时保留mvn package生成的jar/war为.origin。
- spring-boot:run,运行Spring Boot应用。
- spring-boot:start,在mvn integration-test阶段,进行Spring Boot应用生命周期的管理。
- spring-boot:stop,在mvn integration-test阶段,进行Spring Boot应用生命周期的管理。
- spring-boot:build-info,生成Actuator使用的构建信息文件build-info.properties。
关于Maven插件系列之spring-boot-maven-plugin的用法,可以网上自己搜索。
总结:
spring-boot-maven-plugin
插件,是一个可以把Spring Boot项目打成一个可以使用java -jar
命令执行的jar包,Maven中的打包命令打成的jar不能直接运行,需要放入Servlet容器中运行。
(9)关于spring-boot-maven-plugin
插件在使用过程中遇到的问题
在Maven中配置spring-boot-maven-plugin
插件的时候遇到的问题就是,我们直接把上边的spring-boot-maven-plugin
插件坐标复制到pom.xml中,不能直接下载。
原因
-
在Maven中,plugin插件是有专属的配置的,在没有的配置的时候就去普通的仓库里面找。
-
我们平时使用的plugin,都是maven官方的,然而这插件不是他家的,对此阿里有一个仓库https://maven.aliyun.com/repository/spring-plugin可以下载。
-
在项目代码里面,如果加上以下这段配置,就可以正常打包部署了!
<pluginRepositories>
<pluginRepository>
<id>alimaven spring plugin</id>
<name>alimaven spring plugin</name>
<url>https://maven.aliyun.com/repository/spring-plugin</url>
</pluginRepository>
</pluginRepositories>
- 为了不让每个项目都如此烦所的加上上面的配置,需要在Maven的settings.xml配置代码如下:
<profiles>
<profile>
<id>spring plugins</id>
<activation>
<jdk>spring plugins</jdk>
</activation>
<pluginRepositories>
<pluginRepository>
<id>spring plugins</id>
<name>Spring plugins</name>
<url>https://maven.aliyun.com/repository/spring-plugin</url>
<layout>default</layout>
<snapshotPolicy>always</snapshotPolicy>
</pluginRepository>
</pluginRepositories>
</profile>
</profiles>
或者简单一点,直接配置阿里云的Maven镜像仓库。
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
参考:https://blog.csdn.net/MVP_PhoeNix/article/details/84925399
第九点是记录一下,以后出现问题可以做个参考。