- 浏览: 599293 次
- 性别:
- 来自: 厦门
文章分类
- 全部博客 (669)
- oracle (36)
- java (98)
- spring (48)
- UML (2)
- hibernate (10)
- tomcat (7)
- 高性能 (11)
- mysql (25)
- sql (19)
- web (42)
- 数据库设计 (4)
- Nio (6)
- Netty (8)
- Excel (3)
- File (4)
- AOP (1)
- Jetty (1)
- Log4J (4)
- 链表 (1)
- Spring Junit4 (3)
- Autowired Resource (0)
- Jackson (1)
- Javascript (58)
- Spring Cache (2)
- Spring - CXF (2)
- Spring Inject (2)
- 汉字拼音 (3)
- 代理模式 (3)
- Spring事务 (4)
- ActiveMQ (6)
- XML (3)
- Cglib (2)
- Activiti (15)
- 附件问题 (1)
- javaMail (1)
- Thread (19)
- 算法 (6)
- 正则表达式 (3)
- 国际化 (2)
- Json (3)
- EJB (3)
- Struts2 (1)
- Maven (7)
- Mybatis (7)
- Redis (8)
- DWR (1)
- Lucene (2)
- Linux (73)
- 杂谈 (2)
- CSS (13)
- Linux服务篇 (3)
- Kettle (9)
- android (81)
- protocol (2)
- EasyUI (6)
- nginx (2)
- zookeeper (6)
- Hadoop (41)
- cache (7)
- shiro (3)
- HBase (12)
- Hive (8)
- Spark (15)
- Scala (16)
- YARN (3)
- Kafka (5)
- Sqoop (2)
- Pig (3)
- Vue (6)
- sprint boot (19)
- dubbo (2)
- mongodb (2)
最新评论
自定义starter pom
自己实现一个简单的例子,当某个类存在的时候,自动配置这个Bean,并且可以讲这个属性在application.properties中配置
新建一个maven项目(需要引入spring-boot-autoconfigure)
Pom.xml
HelloProperties.java
HelloAutoConfiguration.java
并且要添加spring.factories
整个项目结构
好了,到这里我们就完成了一个starter项目了,下面自己测试下
Pom.xml
App.java
转自:https://blog.csdn.net/a67474506/article/details/52013634
自己实现一个简单的例子,当某个类存在的时候,自动配置这个Bean,并且可以讲这个属性在application.properties中配置
新建一个maven项目(需要引入spring-boot-autoconfigure)
Pom.xml
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.ibigsea</groupId> <artifactId>spring-boot-starter-hello</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>jar</packaging> <name>spring-boot-starter-hello</name> <url>http://maven.apache.org</url> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-autoconfigure</artifactId> <version>1.3.3.RELEASE</version> </dependency> </dependencies> </project>
package com.ibigsea.spring_boot_starter_hello; /** * 通过application.properties的hello.msg来配置,默认为world * @author bigsea * */ public class Hello { private String msg; public String sayHello() { return "hello " + msg; } public String getMsg() { return msg; } public void setMsg(String msg) { this.msg = msg; } }
HelloProperties.java
package com.ibigsea.spring_boot_starter_hello; import org.springframework.boot.context.properties.ConfigurationProperties; /** * 属性配置,Spring boot 自身的自动配置 * @author bigsea * */ @ConfigurationProperties(prefix="hello") public class HelloProperties { private static final String MSG = "world"; private String msg = MSG ; public String getMsg() { return msg; } public void setMsg(String msg) { this.msg = msg; } }
HelloAutoConfiguration.java
package com.ibigsea.spring_boot_starter_hello; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.boot.context.properties.EnableConfigurationProperties; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @Configuration @EnableConfigurationProperties(HelloProperties.class)//开启属性注入,通过@autowired注入 @ConditionalOnClass(Hello.class)//这个类在classpath中存在 才会实例化一个对象 //当设置hello=enabled的情况下,如果没有设置则默认为true,即条件符合 @ConditionalOnProperty(prefix="hello", value="enabled", matchIfMissing = true) public class HelloAutoConfiguration { @Autowired private HelloProperties helloProperties; @Bean//使用java配置方式配置这个类 @ConditionalOnMissingBean(Hello.class)//容器中如果没有Hello这个类实例,那么自动配置这个Hello public Hello hello() { Hello hello = new Hello(); hello.setMsg(helloProperties.getMsg()); return hello; } }
并且要添加spring.factories
# Auto Configure org.springframework.boot.autoconfigure.EnableAutoConfiguration=\ com.ibigsea.spring_boot_starter_hello.HelloAutoConfiguration
整个项目结构
好了,到这里我们就完成了一个starter项目了,下面自己测试下
Pom.xml
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.ibigsea</groupId> <artifactId>test-starter</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>jar</packaging> <name>test-starter</name> <url>http://maven.apache.org</url> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <boot.version>1.3.3.RELEASE</boot.version> </properties> <dependencies> <dependency> <groupId>com.ibigsea</groupId> <artifactId>spring-boot-starter-hello</artifactId> <version>0.0.1-SNAPSHOT</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <version>${boot.version}</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <version>${boot.version}</version> <scope>test</scope> </dependency> </dependencies> </project>
App.java
package com.ibigsea.test_starter; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import com.ibigsea.spring_boot_starter_hello.Hello; @SpringBootApplication @RestController public class App { @Autowired private Hello hello; @RequestMapping("/") public String index() { return hello.sayHello(); } public static void main(String[] args) { SpringApplication.run(App.class, args); } }
转自:https://blog.csdn.net/a67474506/article/details/52013634
发表评论
文章已被作者锁定,不允许评论。
-
spring boot集成jsp
2018-11-21 16:53 7351.配置文件 server: port: 8080 ... -
Spring BeanFactoryPostProcessor和BeanPostProcessor的区别
2018-11-14 15:40 706链接:https://blog.csdn.net/caihai ... -
spring BeanPostProcessor理解
2018-11-14 11:31 321链接:https://blog.csdn.net/ginkgo ... -
Spring 源码解析之Initializer
2018-11-14 11:27 456链接:https://blog.csdn.net/ktlife ... -
spring boot AnnotationConfigApplicationContext的实例化过程
2018-11-10 14:18 1123链接:https://blog.csdn.net/chr1sg ... -
spring transaction同一个类不回滚解决方法
2018-10-11 10:59 7711.修改配置文件 <aop:aspectj-autopr ... -
Spring @Transaction学习
2018-10-08 10:36 2921.考虑有下面这么一个类 public class Foo ... -
spring mvc i18n国际化学习(spring:message)
2018-06-09 09:35 640spring.xml文件中配置: <!-- 存储区域 ... -
Spring Boot Oauth2.0授权服务器
2018-05-11 14:19 1652什么是OAuth? OAuth(Open Authoriza ... -
Spring Boot @Import注解(将指定类实例注入到IOC容器中)
2018-05-09 10:20 1597SpringBoot 的 @Import 用于将指定的类实例注 ... -
Spring Boot @Conditional注解
2018-05-09 10:15 1816Spring Boot的强大之处在于使用了Spring 4框架 ... -
Spring Boot自动配置原理(@Conditional @Import)
2018-04-26 14:45 1338Springboot的自动配置是SpringBoot的关键,主 ... -
Spring Boot优缺点总结
2018-04-16 10:25 1536优点: 1.去除了大量的xml配置文件 2.简化 ... -
SpringBoot JPA @Transaction 知识学习
2018-03-16 09:09 761一、事务相关概念 1、事务的特点 原子性:事务是一个原子操 ... -
Sprint @Query注解的用法(nativeQuery=true/false)(Spring Data JPA)
2018-03-15 16:33 38391. 一个使用@Query注解的简单例子 @Query(val ... -
Spring Boot JpaRepository知识学习(Spring Data JPA)
2018-03-14 11:17 18011.Spring Data所解决的问题 Spring Dat ... -
SpringCloud Hystrix知识学习(防止雪崩效应)
2018-03-13 14:57 929一、Hystrix说明 1.服务雪崩效应:是一种因服务提供者的 ... -
SpringCloud @LoadBalanced注解学习
2018-03-13 09:48 2221当时我们说开启负载均衡很简单,只需要在RestTemplate ... -
Spring Boot配置方式(java配置和注解配置)
2018-03-12 15:09 1109Java配置 从Spring 3.x开始,Spring提供了J ... -
java RestTemplate访问restful服务
2018-03-01 15:02 1621REST的基础知识 当谈论REST时,有一种常见的错误就是将其 ...
相关推荐
1. `spring-boot-starter-parent-1.5.13.RELEASE.pom.asc` - 这是一个GnuPG签名文件,用于验证`spring-boot-starter-parent-1.5.13.RELEASE.pom`文件的完整性。GnuPG是一种开放源代码的加密软件,可以确保下载的POM...
spring-boot-starter-test-1.0.2.RELEASE.jar 各个版本,免费下载 spring-boot-starter-test-RELEASE.jar 各个版本,免费下载 spring-boot-starter-test.jar 各个版本,免费下载 如果不能免费下载,关注我,评论区...
赠送Maven依赖信息文件:seata-spring-boot-starter-1.3.0.pom; 包含翻译后的API文档:seata-spring-boot-starter-1.3.0-javadoc-API文档-中文(简体)版.zip; Maven坐标:io.seata:seata-spring-boot-starter:1.3.0...
spring-boot-starter-data-redis-2.2.0.RELEASE
赠送Maven依赖信息文件:druid-spring-boot-starter-1.1.9.pom; 包含翻译后的API文档:druid-spring-boot-starter-1.1.9-javadoc-API文档-中文(简体)版.zip; Maven坐标:...
赠送jar包:aliyun-sms-spring-boot-starter-2.0.2.jar 赠送原API文档:aliyun-sms-spring-boot-starter-2.0.2-javadoc.jar 赠送源代码:aliyun-sms-spring-boot-starter-2.0.2-sources.jar 包含翻译后的API文档...
赠送Maven依赖信息文件:druid-spring-boot-starter-1.2.8.pom; 包含翻译后的API文档:druid-spring-boot-starter-1.2.8-javadoc-API文档-中文(简体)版.zip; Maven坐标:...
赠送Maven依赖信息文件:dynamic-datasource-spring-boot-starter-3.4.1.pom; 包含翻译后的API文档:dynamic-datasource-spring-boot-starter-3.4.1-javadoc-API文档-中文(简体)版.zip; Maven坐标:...
java运行依赖jar包
spring-boot-starter-web-2.0.7.0.jar
赠送Maven依赖信息文件:druid-spring-boot-starter-1.1.10.pom; 包含翻译后的API文档:druid-spring-boot-starter-1.1.10-javadoc-API文档-中文(简体)版.zip; Maven坐标:...
赠送Maven依赖信息文件:dynamic-datasource-spring-boot-starter-3.4.1.pom; 包含翻译后的API文档:dynamic-datasource-spring-boot-starter-3.4.1-javadoc-API文档-中文(简体)-英语-对照版.zip; Maven坐标:...
赠送Maven依赖信息文件:aliyun-sms-spring-boot-starter-2.0.2.pom; 包含翻译后的API文档:aliyun-sms-spring-boot-starter-2.0.2-javadoc-API文档-中文(简体)-英语-对照版.zip; Maven坐标:io.springboot.sms:...
mybatis-spring-boot-starter-2.1.4.jarmybatis-spring-boot-starter-2.1.4.jar
spring-boot-starter-web-1.0.0.RELEASE.jar 各个版本,免费下载 spring-boot-starter-web.RELEASE.jar 各个版本,免费下载 spring-boot-starter-web.jar 各个版本,免费下载 如果不能免费下载,关注我,评论区联系...
赠送Maven依赖信息文件:oss-spring-boot-starter-1.0.3.pom; 包含翻译后的API文档:oss-spring-boot-starter-1.0.3-javadoc-API文档-中文(简体)-英语-对照版.zip; Maven坐标:...
赠送Maven依赖信息文件:spring-boot-autoconfigure-2.2.8.RELEASE.pom; 包含翻译后的API文档:spring-boot-autoconfigure-2.2.8.RELEASE-javadoc-API文档-中文(简体)版.zip; Maven坐标:org.springframework.boot...
赠送jar包:oss-spring-boot-starter-1.0.3.jar 赠送原API文档:oss-spring-boot-starter-1.0.3-javadoc.jar 赠送源代码:oss-spring-boot-starter-1.0.3-sources.jar 包含翻译后的API文档:oss-spring-boot-...
spring-boot-starter-web-1.5.4.RELEASE.jar
spring-boot-2.1.3.RELEASE.jar -autoconfigure- -devtools- -maven-plugin- -starter- -starter-jdbc- -starter-json- -starter-logging- -starter-test- -starter-tomcat- -starter-web- -test- -test-...