新建一个maven项目,并修改其pom文件
<?xml version="1.0" encoding="UTF-8"?>
<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/xsd/maven-4.0.0.xsd">
<groupId>com.cjustsinging</groupId>
<artifactId>c1-base</artifactId>
<version>1.0-SNAPSHOT</version>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-parent</artifactId>
<version>2.0.0.RELEASE</version>
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
</project>
重点在于spring-boot-starter-web这个依赖,这个starter把web所需的依赖全部都打包好了。
继承parent好处在于,其下的许多依赖都已经配置版本号,无需再手动配置。也可以不继承,不过那样的话,所有的dependency都要指定一下version,稍微要麻烦那么一点点,建议还是继承好一些。
新建启动类Application
package com.cjustsinging;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class);
}
}
重点在于使用@SpringBootApplication
注解,开发过程中启动的时候,直接启动该启动类的main函数即可。如果是打成了jar包,通过java -jar 方式启动的时候,也是会启动该类的main的函数。
至此,一个最简单的springboot的项目就搭好了。
此时,直接run启动类的main函数,就能看到启动成功了,最后几行如下:
2018-11-21 17:16:49.811 INFO 66938 --- [ main] o.s.j.e.a.AnnotationMBeanExporter : Registering beans for JMX exposure on startup
2018-11-21 17:16:50.134 INFO 66938 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 8080 (http) with context path ''
2018-11-21 17:16:50.147 INFO 66938 --- [ main] com.cjustsinging.Application : Started Application in 8.759 seconds (JVM running for 12.549)
拦截请求
项目起了,但是空空如也也没什么用,接下来就弄个controller来拦截请求
package com.cjustsinging.controller;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("/")
public class TxController {
private Log log = LogFactory.getLog(TxController.class);
@RequestMapping("test")
public Object test() {
log.info("test");
return "Hello";
}
}
-
@RestController
注解的作用在于标识该类是一个基于restful的controller。也可以用@Controller
这个注解的,不过这个就还需要做一些额外的操作,使用@RestController
会更爽一些。 -
@RequestMapping
注解的作用在于指定拦截适配的规则,@RequestMapping("/")
这样就是全拦截了,@RequestMapping("test")
这样就是拦截test字符串,这个注解可以作用在类上,也可以作用在方法上,最后的结果就是类上的+方法上的才是最终拦截规则。像上面的类来说,/test
这个请求就会匹配到test方法上。
新增controller类之后,重启服务,在浏览器上请求一下localhost:8080/test
,请求就会进入到test这个方法。这个简单的方法的效果比较简单,页面上就会打印一个Hello,应用日志会打印一行test。
入口弄好了,剩下想干嘛就各随所好了,手动奸笑。
访问静态资源
maven项目的资源文件都是放在resources目录下,而springboot的静态资源默认访问目录就是resources目录下的static目录,即resources/static目录。
这个目录下的静态资源可以直接访问,在static目录下放置一个index.html,直接请求localhost:8080/index.html
就可以访问到index.html了。
打成可执行jar包
springboot默认情况下,已经内嵌了一个可运行的tomcat,所以一般建议直接打成一个可执行的jar,然后通过java -jar
命令的形式就可以跑,会使用内嵌的tomcat直接起一个服务。
默认情况下,打包方式就是配置的jar,不过打包还需要配合springboot的maven打包工具来使用,稍微修改了一下pom文件,
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
这样修改之后,通过mvn clean package
出来的jar包就可以执行运行了。
后话
springboot真的很方便,简简单单的几步就完事了。
妈妈再也不用担心我的spring了…
好吧,其实这个只是最简单的几步打通了,真正干事的时候还需进一步深入,后续再接着聊。
网友评论