引入web模块
1、pom.xml中添加支持web的模块:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
pom.xml文件中默认有两个模块:
spring-boot-starter:核心模块,包括自动配置支持、日志和YAML;
spring-boot-starter-test:测试模块,包括Junit、Hamcrest、Mockito
2、编写controller 内容
@RestController
public class DemoController{
@RequestMapping("/hello")
public String index(){
return "Hello World";
}
}
RestController的意思就是controller里面的方法都以json格式输出,不用再写什么json的配置了。
开发环境的调试
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<fork>true</fork>
</configuration>
</plugin>
</plugins>
</build>
该模块在完成的打包环境下运行的时候会被禁用。如果你使用java-jar启动应用或者一个特定的classloader启动。它会认为这是一个“生产环境”。
自定义Filter
spring boot 自动添加了OrderedCharacterEncodingFilter和HiddenHttpMethodFilter,并且我们可以自定义Filter
两个步骤:
- 实现Filter接口,实现Filter方法
- 添加@Configuration注解,将自定义Filter加入过滤链
自定义Property
在web开发中,常常需要自定义一些配置文件。
spring boot配置在application.properties中
com.xx.title=springboot
com.xx.description=快来学习吧
@Component
public class XxProperties{
@Value("${com.xx.title}")
private String title;
@Value("${com.xx.description}")
private String description;
//--------
}
定时任务
1.pom文件配置
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
</dependency>
</dependencies>
2、启动注解
再启动类上加上@EnableScheduling
@SpringBootApplication
@EnableScheduling
public class Test{
public static void main(String[] args){
SpringApplication.run(Test.class, args);
}
}
3.创建定时任务
@Compontent
public class SchedulerTask{
private int i = 0;
@Scheduled(cron="0 0/5 * * * ?")
public void process(){
System.out.println("this is a scheduler task" + (i++));
}
}
@Scheduled 参数可以接受两种定时的设置,一种是我们常用的cron="*/6 * * * * ?",一种是 fixedRate = 6000,两种都表示每隔六秒打印一下内容。