SpringBoot的starter主要用來簡化依賴用的。本文主要分兩部分,一部分是列出一些starter的依賴,另外一部分是教你本身寫一個starter。html
Starter(Group ID: org.springframework.boot) | 傳遞依賴於 |
---|---|
spring-boot-starter-log4j2 | ■ org.apache.logging.log4j:log4j-slf4j-impl ■ org.apache.logging.log4j:log4j-api ■ org.apache.logging.log4j:log4j-core ■ org.slf4j:jcl-over-slf4j ■ org.slf4j:jul-to-slf4j |
spring-boot-starter-logging | ■ ch.qos.logback:logback-classic ■ org.slf4j:jcl-over-slf4j ■ org.slf4j:jul-to-slf4j ■ org.slf4j:log4j-over-slf4j |
spring-boot-starter-mail | ■ org.springframework.boot:spring-boot-starter ■ org.springframework:spring-context ■ org.springframework:spring-context-support ■ com.sun.mail:javax.mail |
spring-boot-starter-mobile | ■ org.springframework.boot:spring-boot-starter ■ org.springframework.boot:spring-boot-starter-web ■ org.springframework.mobile:spring-mobile-device |
spring-boot-starter-mustache | ■ org.springframework.boot:spring-boot-starter ■ org.springframework.boot:spring-boot-starter-web ■ com.samskivert:jmustache |
spring-boot-starter-redis | ■ org.springframework.boot:spring-boot-starter ■ org.springframework.data:spring-data-redis ■ redis.clients:jedis |
spring-boot-starter-remote-shell | ■ org.springframework.boot:spring-boot-starter ■ org.springframework.boot:spring-boot-starter-actuator ■ org.crashub:crash.cli ■ org.crashub:crash.connectors.ssh (excludes org.codehaus.groovy:groovy-all) ■ org.crashub:crash.connectors.telnet (excludes javax.servlet:servlet-api, log4j :log4j, commons-logging:commons-logging) ■ org.crashub:crash.embed.spring(excludes org.springframework:spring-web, org.codehaus.groovy:groovy-all) ■ org.crashub:crash.plugins.cron (excludes org.codehaus.groovy:groovy-all) ■ org.crashub:crash.plugins.mail (excludes org.codehaus.groovy:groovy-all) ■ org.crashub:crash.shell (excludes org.codehaus.groovy:groovy-all) ■ org.codehaus.groovy:groovy |
spring-boot-starter-security | ■ org.springframework.boot:spring-boot-starter ■ org.springframework:spring-aop ■org.springframework.security:spring-security-config ■org.springframework.security:spring-security-web |
spring-boot-starter-social-facebook | ■org.springframework.boot:spring-boot-starter ■ org.springframework.boot:spring-boot-starter-web ■org.springframework.social:spring-social-config ■ org.springframework.social:spring-social-core ■ org.springframework.social:spring-social-web ■org.springframework.social:spring-social-facebook |
spring-boot-starter-social-linkedin | ■org.springframework.boot:spring-boot-starter ■ org.springframework.boot:spring-boot-starter-web ■org.springframework.social:spring-social-config ■ org.springframework.social:spring-social-core ■ org.springframework.social:spring-social-web ■org.springframework.social:spring-social-linkedin |
spring-boot-starter-social-twitter | ■org.springframework.boot:spring-boot-starter ■ org.springframework.boot:spring-boot-starter-web ■ org.springframework.social:spring-social-config ■ org.springframework.social:spring-social-core ■org.springframework.social:spring-social-web ■ org.springframework.social:spring-social-twitter |
spring-boot-starter-test | ■ junit:junit ■ org.mockito:mockito-core ■ org.hamcrest:hamcrest-core ■ org.hamcrest:hamcrest-library ■ org.springframework:spring-core(excludes commons-logging:commons-logging) ■ org.springframework:spring-test |
spring-boot-starter-thymeleaf | ■ org.springframework.boot:spring-boot-starter ■ org.springframework.boot:spring-boot-starter-web ■ org.thymeleaf:thymeleaf-spring4 ■nz.net.ultraq.thymeleaf:thymeleaf-layout-dialect |
spring-boot-starter-tomcat | ■ org.apache.tomcat.embed:tomcat-embed-core ■ org.apache.tomcat.embed:tomcat-embed-el ■org.apache.tomcat.embed:tomcat-embed-logging-juli ■org.apache.tomcat.embed:tomcat-embed-websocket |
spring-boot-starter-undertow | ■ io.undertow:undertow-core ■ io.undertow:undertow-servlet(excludes org.jboss.spec.javax.servlet:jboss-servlet-api_3.1_spec) ■ io.undertow:undertow-websockets-jsr ■ javax.servlet:javax.servlet-api ■ org.glassfish:javax.el |
spring-boot-starter-validation | ■ org.springframework.boot:spring-boot-starter ■ org.apache.tomcat.embed:tomcat-embed-el ■org.hibernate:hibernate-validator |
spring-boot-starter-velocity | ■ org.springframework.boot:spring-boot-starter ■ org.springframework.boot:spring-boot-starter-web ■ commons-beanutils:commons-beanutils ■ commons-collections:commons-collections ■ commons-digester:commons-digester ■ org.apache.velocity:velocity ■ org.apache.velocity:velocity-tools ■ org.springframework:spring-context-support |
spring-boot-starter-web | ■ org.springframework.boot:spring-boot-starter ■ org.springframework.boot:spring-boot-starter-tomcat ■ org.springframework.boot:spring-boot-starter-validation ■com.fasterxml.jackson.core:jackson-databind ■ org.springframework:spring-web ■ org.springframework:spring-webmvc |
spring-boot-starter-websocket | ■ org.springframework.boot:spring-boot-starter ■ org.springframework.boot:spring-boot-starter-web ■ org.springframework:spring-messaging ■org.springframework:spring-websocket |
spring-boot-starter-ws | ■ org.springframework.boot:spring-boot-starter ■ org.springframework.boot:spring-boot-starter-web ■org.springframework:spring-jms ■ org.springframework:spring-oxm ■ org.springframework.ws:spring-ws-core ■ org.springframework.ws:spring-ws-support |
來自<<Spring Boot in Action>>的附錄B SpringBoot Starters的內容java
<dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-dependencies</artifactId> <version>${spring.boot.version}</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement>
<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> </dependencies>
@Configuration @ComponentScan( basePackages = {"com.codecraft.actuator"} ) public class WebAutoConfiguration { /** * addViewController方法不支持placeholder的解析 * 故在這裏用變量解析出來 */ @Value("${actuator.web.base:}") String actuatorBase; // @Bean // public ActuatorNavController actuatorNavController(){ // return new ActuatorNavController(); // } @Bean public WebMvcConfigurerAdapter configStaticMapping() { return new WebMvcConfigurerAdapter() { @Override public void addViewControllers(ViewControllerRegistry registry) { //配置跳轉 registry.addViewController(actuatorBase+"/nav").setViewName( "forward:/static/nav.html"); } @Override public void addResourceHandlers(ResourceHandlerRegistry registry) { registry.addResourceHandler("/static/**"). addResourceLocations("classpath:/static/"); } }; } }
# AutoConfigurations org.springframework.boot.autoconfigure.EnableAutoConfiguration=com.codecraft.actuator.configuration.WebAutoConfiguration
mvn clean install
<dependency> <groupId>com.codecraft</groupId> <artifactId>spring-boot-starter-actuator-web</artifactId> <version>1.0-SNAPSHOT</version> </dependency>
mvn spring-boot:run
訪問web
http://localhost:8080/nav