spring-boot
概述
为了提升halo框架在以微服务为架构模式下应用的适配度,进一步推进使用halo框架的应用系统架构演化。halo框架在doritos.3.0
版本中正式引入了spring-boot,作为halo框架有一个基础构件。spring-boot
让基于spring生态开发的应用系统更高效的完成生产独立部署和运行。获得“开箱即用”的体验。spring-boot
构件的优势特征可以总结为以下几方面:
1. 可以创建一个独立可部署的Java应用程序,不再依赖J2EE容器中间件来实现企业级应用的功能。 2. 可以让应用通过内嵌版本的Tomcat, Jetty, Undertow,不再需要构建war包。 3. 提供了更加"直截了当"的starter
依赖开发模式,简化构建配置的过程。 4. 对spring配置第三方程序依赖都能实现自动化装配。 5. 提供了“生产就绪型”的功能特性:例如metrics,健康检查,配置外化等方面。 6. 彻底的去XML配置化。以无新增代码的形式完成配置。
特性浏览
特性描述
halo使用程度
推荐使用指数
应用启动形式
halo在halo-xxx-starter
构件簇中预置了应用在JVM本地进程的启动方式。同时也通过SpringBootServletInitializer
的实现完成对外部J2EE容器的兼容性启动。
@Configuration
@EnableAutoConfiguration(exclude = {DataSourceAutoConfiguration.class, MongoAutoConfiguration.class, SecurityAutoConfiguration.class})
@ComponentScan(value = {"com.*.*.service", "com.*.*.business"}, useDefaultFilters = false, includeFilters = {
@ComponentScan.Filter(value = {Autowired.class, Resource.class, Service.class, Scope.class})
})
@ComponentScan(value = {"com.*.*.dao"}, useDefaultFilters = false, includeFilters = {
@ComponentScan.Filter(value = {Autowired.class, Resource.class, Repository.class})
})
@ImportResource({"classpath*:dasc/applicationContext-dasc-support.xml", "classpath*:applicationContext-*.xml"})
@AutoConfigureOrder
public class ServiceAppStarter extends SpringBootServletInitializer {
public static void main(String[] args) {
loadApplicationProperties(new SpringApplicationBuilder(ServiceAppStarter.class)).build().run(args);
}
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
return loadApplicationProperties(builder.sources(ServiceAppStarter.class));
}
private static SpringApplicationBuilder loadApplicationProperties(SpringApplicationBuilder builder) {
try {
return builder.properties(PropertiesLoaderUtils
.loadProperties(new ClassPathResource("application.properties")));
} catch (Exception e) {
throw new RuntimeException(e);
}
}
}
Last updated