最近项目组切springboot微服务 ,相关资料文档比较少都是通过官网提供的文档进行摸索的,如果你还不知道springboot是什么,可以先看一下这篇文章
(http://www.infoq.com/cn/articles/microframeworks1-spring-boot/)看完 了,你就能大体知道什么是springboot以及它能给我们带来什么便捷功能
本文实例都是基于maven项目进行搭建的。
首先需要在自己的主POM中添加如下代码(个人习惯最外层的pom.xml只是壳子),这也是最关键的一步:
org.springframework.boot spring-boot-starter-parent 1.2.7.RELEASE
其次就是创建一个项目启动类,该类必须满足3个条件 :
1. 类注解@SpringBootApplication
2. 实现一个main方法
3. 在/main/java/resource目录下创建项目核心配置文件application.properties(springboot同时也提供了yml的格式,so用起来非常爽)
Bootstrap.java
@SpringBootApplication @PropertySources({//默认配置 @PropertySource("classpath:dbconfig.properties"), //tomcat目录下 @PropertySource(value = "file:${CATALINA_BASE}/conf/dbconfig.properties", ignoreResourceNotFound = true), //${user.dir} 运行在项目同目录下 @PropertySource(value = "file:${user.dir}/conf/dbconfig.properties", ignoreResourceNotFound = true),
})
@Slf4j
public class Bootstrap extends SpringBootServletInitializer implements EmbeddedServletContainerCustomizer {@Override protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) { return builder.sources(Bootstrap.class); } /** * spring boot 服务主入口 * * @param args */ public static void main(String[] args) { ApplicationContext context = SpringApplication.run(Bootstrap.class, args); if (log.isInfoEnabled() && context instanceof EmbeddedWebApplicationContext) { int port = ((EmbeddedWebApplicationContext) context).getEmbeddedServletContainer().getPort(); String contextPath = context.getApplicationName(); String url = String.format(Locale.US, "http://localhost:%d%s", port, contextPath); //提示项目用到的相关配置文件 log.info(" =========== ${user.dir}={} =========== ", System.getProperty("user.dir")); log.info(" =========== ${java.io.tmpdir}={} =========== ", System.getProperty("java.io.tmpdir")); String dashes = "------------------------------------------------------------------------"; log.info("Access URLs:\n{}\n\tLocal: \t\t{}\n{}", dashes, url, dashes); } } @Override public void customize(ConfigurableEmbeddedServletContainer container) { container.addErrorPages( new ErrorPage(HttpStatus.BAD_REQUEST, "/error/notfound"), new ErrorPage(HttpStatus.NOT_FOUND, "/error/notfound") ); }
}
@PropertySources 这个注解 相信大家并不陌生,它是来自springframework的,用来加载资源文件的,这类我的习惯是分层读取配置文件,先读取classpath 、CATALINA_BASE、user.dir 依次的 顺序 这样读得好处是启动动态覆盖的作用,方便部署生产环境配置文件,ignoreResourceNotFound 变量是用来忽略资源不存在的报错
application.yml
#server settings server: port : 8082 address : 127.0.0.1 sessionTimeout : 30 #contextPath : / #Tomcat specifics tomcat: accessLogEnabled : false protocolHeader : x-forwarded-proto remoteIpHeader : x-forwarded-for basedir: backgroundProcessorDelay : 30 # secs logging: config : classpath:logback.xml level : org.springframework : ERROR com.woawi: DEBUGspring :
jpa :
database : MYSQL
show-sql : true
generate-ddl : true
hibernate :
ddl-auto : none
naming-strategy : org.hibernate.cfg.ImprovedNamingStrategy
properties:
hibernate :
dialect : org.hibernate.dialect.MySQL5Dialect
我对yml文件情有独钟,所以这里并没有采用properties的方式配置,这里我只是简单的配置了一下常用的tomcat logback springdata,该配置文件的配置很多 如需要用到其他配置请自行查阅官方提供的在线文档
直接搜索标题Appendix A. Common application properties
注:信息文档可以参考
http://projects.spring.io/spring-boot/
http://docs.spring.io/spring-boot/docs/1.2.7.RELEASE/reference/htmlsingle/(在线springboot文档 1.2.7的)
https://github.com/cyzaoj/antc实例下载
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于