Spring Boot从零到一
这一篇主要介绍如何从零开始开发一个Spring Boot的web应用程序。
1.环境搭建
至于Spring Boot环境的搭建,可以参考我的另一篇文章Java开发环境配置,主要就是安装java环境,安装tomcat,安装maven和安装idea集成开发环境,像jdk、tomcat和maven都可以免安装,主要就是配置环境变量,包括JAVA_HOME、CLASSPATH、MAVEN_HOME、TOMCAT_HOME、CATALINA_HOME,在path中加入.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar;%MAVEN_HOME%\bin这几个路径,就搞定了,对于linux系统来说,那就更加的简单了,只需要几行命令就可以了,sudo apt-get install open-jdk;sudo apt-get install maven;下载tomcat该配置环境变量的,配置环境变量就可以了。
2.初始化应用程序
基础的环境搭建成功了,然后就是要开发Spring Boot项目了,Spring Boot提供了贴心的一键生成功能,打开 start.spring.io 选择Maven project,选择Java语言,选择Spring Boot版本,填写工程信息,选择打包成war还是jar,选择Java版本,最后选择需要引入的其他依赖,最后Generate就完成了。
将下载的文件解压,可以看到Spring Boot生成的目录结构。
里面主要包含了src文件夹和pom.xml文件,pom.xml是maven的配置文件,剩下的mvnm,.mvn和mvnm.cmd主要是maven wrapper,起到控制maven版本的作用,其实你删掉也没多大毛病。这里需要说明的是,如果选择打包成jar文件,和打包成war文件是不一样的,用idea打开刚解压的文件夹,带依赖下载完成后,可以看到,在pom.xml中,引入了两个依赖,都是关于tomcat的。
同时也生成了一个ServletInitializer类,这个类是必须的,有了他才能在tomcat中运行。
点击idea中的debug按钮,一个Spring Boot应用就在8080端口启动了。
3.编写HelloWorld
应用程序启动了,这个时候你直接在浏览器中输入localhost:8080
查看,会报错的,因为你没有配置视图解析器,比如Thymeleaf。
这个时候,可以在ServletInitializer文件的同目录下,简单的写一个test.java文件,代码如下:
1 | package cn.**; |
重新运行SpringBoot程序,然后再浏览器中输入:http://localhost:8080/HelloWorld
可以看到输出结果为HelloWorld,这样一个完整Spring Boot可以运行于Tomcat容器中的应用程序就搭建完成了。
4.修改Maven自定义源码目录
从上一步的初始化应用程序开始,一个java web项目的默认目录是这样的,
1 | app |
使用maven进行打包时,会将src/main/java,src/main/resources,src/test/java中的文件编译打包进webapp,默认的资源目录也是resources,所以你的jsp文件就要放到resources的templates下才能再预览、测试的时候被应用程序找到,如果放到别的地方,就需要单独配置。java的源码目录只有一个src/main/java,代码只有放到这个目录里面,才能被编译和运行,即便是你再main下再新建一个test目录成为src/main/test,test目录里面的代码也是无法被编译和处理的。如果像增加源码目录怎么办,可以再pom.xml文件中使用插件build-helper-maven-plugin
1 | <!-- 添加源码目录 --> |
1.Maven添加自定义的源码目录
5.修改java版本
有时候,在电脑上安装了高版本的jdk,但是服务器上运行的低版本jave,为了顺利兼容,可以利用maven-compiler-plugin插件,来指定源代码的java版本和目标java版本。
1 | <build> |
1.深入理解java 版本兼容问题
2.Java—idea intelij的java版本降级编译
3.Maven 教程(21)— maven-compiler-plugin 插件详解
4.maven 默认使用的 jdk 版本
6.添加阿里云的Maven仓库地址
在pom.xml中添加如下的仓库地址
1 | <repositories> |
7.启动、打包、运行应用程序
(1) 启动又有两种方式,一种是直接在命令行中输入: mvn spring-boot:run , 一种是使用idea的debug模式,一般都会选择debug模式吧。
(2) 至于打包命令,可以使用 mvm clean package ,如果配置了打包的profile,那就可以指定profile打包配置,mvn clean package -Ptest。
(3) 运行的话,如果是打包成war格式,那么直接放到tomcat下运行就可以了,如果打包成jar格式,那么直接使用: java -jar target/springbootTest-0.0.1-SNAPSHOT.jar, 运行jar文件即可。还可以指定配置文件:
java -jar [jar包的完整路径] –spring.profiles.active=dev,这个时候在resources文件夹下又application-dev.yml或者是application-dev.properties文件。还可以直接指定外部的配置文件:java -jar -Dspring.config.location=D:\config\config.properties springbootrestdemo-0.0.1-SNAPSHOT.jar
(4) linux后台运行,打印日志
1 | ## 查看进程 |
1.Spring boot项目 运行jar包指定properties启动环境
2.Spring Boot 学习笔记 3 : mvn spring-boot:run
3.Spring Boot配置文件放在jar外部
4.springboot项目实现jar包外配置文件管理
5.Linux如何查看进程、杀死进程、启动进程等常用命令
6.nohup不输出日志信息的方法,及linux重定向学习 (这里讲了如何不生成nohup.out文件)
补充内容
使用:nohup java -jar test.jar >temp.txt & 会出现: 忽略输入并把输出追加到”nohup.out”或者nohup: 忽略输入重定向错误到标准输出端
改用:nohup ./kibana > /dev/null 2>&1 &
1.解决nohup: 忽略输入并把输出追加到”nohup.out”或者nohup: 忽略输入重定向错误到标准输出端
2.Linux Kibana :nohup: 忽略输入并把输出追加到”nohup.out”
8.取消数据库配置
@SpringBootApplication = (默认属性)@Configuration + @EnableAutoConfiguration + @ComponentScan。springboot会自动注入数据源,而你却没有配,所以他就抛出该异常。
排除配置
1 |
1.SpringBoot项目取消数据库配置