spring boot 学习(一)
来源:互联网 发布:pp助手mac备份 编辑:程序博客网 时间:2024/06/05 21:16
本文参考spring boot官方的文档:https://spring.io/guides/gs/spring-boot/
使用的是gradle构建项目,配置如下:
buildscript { repositories { mavenCentral() } dependencies { classpath("org.springframework.boot:spring-boot-gradle-plugin:1.5.3.RELEASE") }}apply plugin: 'java'apply plugin: 'eclipse'apply plugin: 'idea'apply plugin: 'org.springframework.boot'jar { baseName = 'gs-spring-boot' version = '0.1.0'}repositories { mavenCentral()}sourceCompatibility = 1.8targetCompatibility = 1.8dependencies { // tag::jetty[] compile("org.springframework.boot:spring-boot-starter-web") { exclude module: "spring-boot-starter-tomcat" } compile("org.springframework.boot:spring-boot-starter-jetty") // end::jetty[] // tag::actuator[] compile("org.springframework.boot:spring-boot-starter-actuator") // end::actuator[] testCompile("junit:junit")}使用 spring-boot-gradle-plugin 插件可以提供一些创建可执行 jar 和从源码运行项目的任务,它提供了一个内置的依赖解析器,以方便依赖中不用写版本号。
写一个简单的控制器:
package hello;import org.springframework.web.bind.annotation.RestController;import org.springframework.web.bind.annotation.RequestMapping;@RestControllerpublic class HelloController { @RequestMapping("/") public String index() { return "Greetings from Spring Boot!"; } }
创建一个可执行的类:
package hello;import java.util.Arrays;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;import org.springframework.context.ApplicationContext;@SpringBootApplicationpublic class Application { public static void main(String[] args) { ApplicationContext ctx = SpringApplication.run(Application.class, args); System.out.println("Let's inspect the beans provided by Spring Boot:"); String[] beanNames = ctx.getBeanDefinitionNames(); Arrays.sort(beanNames); for (String beanName : beanNames) { System.out.println(beanName); } }}main 方法使用了 SpringApplication 工具类。这将告诉Spring去读取 Application 的元信息,并在Spring的应用上下文作为一个组件被管理。
@Configuration 注解告诉 spring 该类定义了 application context 的 bean 的一些配置。
@ComponentScan 注解告诉 Spring 遍历带有 @Component 注解的类。这将保证 Spring 能找到并注册 HelloController,因为它被 @RestController 标记,这也是 @Component 的一种。
@EnableAutoConfiguration 注解会基于你的类加载路径的内容切换合理的默认行为。比如,因为应用要依赖内嵌版本的 tomcat,所以一个tomcat服务器会被启动并代替你进行合理的配置(我们代码里用的是jetty)。再比如,因为应用要依赖 Spring 的 MVC 框架,一个 Spring MVC 的 DispatcherServlet 将被配置并注册,并且不再需要 web.xml 文件。
用@SpringBootApplication代替上面三个注解。
进入项目根目录执行:
我是先执行: gradle wrapper,这样就更新配置文件gradle-wrapper.properties,用我自己的gradle,不用再去下载,当然不执行这句命令也行。
./gradlew build
然后执行:
java -jar build/libs/gs-spring-boot-0.1.0.jar会看到如下所示主函数的打印结果:
查看服务:
curl localhost:8080
或者浏览器输入查看;
加入compile("org.springframework.boot:spring-boot-starter-actuator")作用:在生产环境中,需要实时或定期监控服务的可用性。spring-boot 的actuator(监控)功能提供了很多监控所需的接口。暴露的功能有这些:
例如:
编写测试类:
import static org.hamcrest.Matchers.equalTo;import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content;import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;import org.junit.Test;import org.junit.runner.RunWith;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc;import org.springframework.boot.test.context.SpringBootTest;import org.springframework.http.MediaType;import org.springframework.test.context.junit4.SpringRunner;import org.springframework.test.web.servlet.MockMvc;import org.springframework.test.web.servlet.request.MockMvcRequestBuilders;@RunWith(SpringRunner.class)@SpringBootTest@AutoConfigureMockMvcpublic class HelloControllerTest { @Autowired private MockMvc mvc; @Test public void getHello() throws Exception { mvc.perform(MockMvcRequestBuilders.get("/").accept(MediaType.APPLICATION_JSON)) .andExpect(status().isOk()) .andExpect(content().string(equalTo("Greetings from Spring Boot!"))); }}
阅读全文
0 0
- Spring Boot学习(一)
- Spring Boot学习(一)
- Spring Boot学习(一)
- spring boot 学习(一)
- Spring Boot学习(一)
- Spring Boot 学习(一)
- Spring Boot学习(一)
- Spring Boot学习一
- Spring Boot学习(一)
- Spring Boot学习(一)
- spring boot零基础学习 spring boot简介(一)
- spring boot 学习笔记(一)
- spring boot学习笔记(一)
- Spring Boot框架学习(一)
- spring boot 学习笔录(一)
- spring boot学习笔记(一)
- spring boot 学习之旅(一)
- Spring Boot学习笔记(一)
- mysql主从复制(三)
- 联合查询时过滤条件放在ON之后和放在WHERE之后的区别
- Call分析(三)Call中运行的任务
- Lua内置函数大全
- mysql中的一些锁问题
- spring boot 学习(一)
- 从gbdt到xgboost
- Linux内核异步数据处理--kfifo
- FindBugs的使用
- java的强引用,软引用,弱引用,虚引用
- jquery swipper 轮播中间图放大解决方案
- LigerUI
- 整数中1出现的次数(从1到n整数中1出现的次数)
- 共享经济背后:送餐员改装小黄车送煲仔饭,被警方拘留