- 微服务这两年很火!
- 微框架也很火!
- spring已经火了很多年了!
于是,特别适合开发微服务的spring微框架注定了会很火炎焱燚!
基本原则:约定优于配置
- 此原则已经提出很多年了,而此原则的很多应用大家都不陌生,java-web、maven。。。等等,约定一个模式,大家都照着做就是了,省的各配置各的;
spring boot其实不神秘,没多少新东西,把原来很多必须配置的东西,通过内部设定一个默认值的方式实现自动配置,加上点封装,于是,sb新鲜出炉,sb的宗旨就是让我们能像sb一样使用sb开发应用;
总得说一点好处?
- 自动配置,无XML - 个人很讨厌左一个xml文件,右一个xml文件的;
- 内嵌的web服务器 - 这个并不是什么新东西,我们自己也能做到,只不过sb让一切更简单;
- 提供了许多许多,灰常强大的,使用极度简单的,生产级特性 - 这个好有吸引力;
HelloWorld是程序猿永恒的主题
首先,创建一个maven工程
<groupId>pub.tbc</groupId> <artifactId>i-spring-boot</artifactId> <version>1.0.0-SNAPSHOT</version>
这只是一个普通maven工程,我们要让她变成sb工程:
<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.4.0.RELEASE</version> </parent>
通过以上继承已经是sb工程了,继承了大量大量大量sb插件,现在,我们启动web插件,将其变成一个web工程:
<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> </dependencies>
OK,现在已经是一个web工程了,再进行一步,添加一个很有用的sb-maven插件 :
<build> <plugins> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins>
- 搞定依赖,让我们正式开始编写我们的helloworld吧
因为内嵌了web容器,SO,我们自己写一个启动类:
@SpringBootApplication public class HelloApplication { public static void main(String[] args) { SpringApplication.run(HelloApplication.class, args); } }
很简单,剩下的,像普通的spring mvc一样写个Controller就可以Hello了:
@RestController public class HelloController { @RequestMapping(value = "/hello", method = RequestMethod.GET) public Map<String, String> demo2() { return new MapBuilder<String, String>().put("k1", "v1").toHashMap(); } }
- ok, 整个helloworld结束,直接运行我们的HelloApplication就可以了,
启动后,在浏览器中访问http://localhost:8080/hello
{ "k1": "v1" }
熟悉的JSON出来了;
- 是不是很简单,没有web.xml,没有application.xml,一切都是那么美好!
扩展
当然,spring-boot并不是只是让我们能方便的开发一个helloworld而已,不配置不代表不能配置,我们可以在application.properties里面做一些简单的配置,如:
## server server.port=80 #context-path=/ ## 日志 logging.level.root=info ## 数据源 #spring.datasource.driver-class-name spring.datasource.url=jdbc:mysql://192.168.1.11:3306/yijiajiao_wares?characterEncoding=utf-8 spring.datasource.username=root spring.datasource.password=root ## spring - security security.user.name=admin security.user.password=admin ## mybatis mapper配置文件 mybatis.mapperLocations=com.eduspace.yijiajiao.mapper/*.xml # 别名扫描 mybatis.typeAliasesPackage=com.eduspace.yijiajiao ... ...
- 待续…