Skip to content

Commit

Permalink
增加自定义starter的demo
Browse files Browse the repository at this point in the history
  • Loading branch information
zq2599 committed Oct 13, 2018
1 parent 391e181 commit 6422aec
Show file tree
Hide file tree
Showing 22 changed files with 819 additions and 0 deletions.
22 changes: 22 additions & 0 deletions customizestarter/addservice/pom.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
<?xml version="1.0" encoding="UTF-8"?>
<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">
<parent>
<artifactId>customizestarter</artifactId>
<groupId>com.bolingcavalry</groupId>
<version>0.0.1-SNAPSHOT</version>
<relativePath>../</relativePath>
</parent>
<artifactId>addservice</artifactId>
<modelVersion>4.0.0</modelVersion>

<dependencies>
<dependency>
<groupId>com.bolingcavalry</groupId>
<artifactId>customizeapi</artifactId>
<version>${project.version}</version>
</dependency>
</dependencies>

</project>
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
package com.bolingcavalry.addservice.service.impl;

import com.bolingcavalry.api.service.AddService;

/**
* @author wilzhao
* @description 加法服务的实现
* @email [email protected]
* @time 2018/10/13 10:59
*/
public class AddServiceImpl implements AddService {
public int add(int a, int b) {
return a + b;
}
}
15 changes: 15 additions & 0 deletions customizestarter/customizeapi/pom.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
<?xml version="1.0" encoding="UTF-8"?>
<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">
<parent>
<artifactId>customizestarter</artifactId>
<groupId>com.bolingcavalry</groupId>
<version>0.0.1-SNAPSHOT</version>
<relativePath>../</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>

<artifactId>customizeapi</artifactId>

</project>
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
package com.bolingcavalry.api.exception;

/**
* @author wilzhao
* @description 执行减法服务时抛出的异常
* @email [email protected]
* @time 2018/10/13 14:20
*/
public class MinusException extends Exception{
public MinusException(String message) {
super(message);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
package com.bolingcavalry.api.service;

/**
* @author wilzhao
* @description 加法服务对应的接口
* @email [email protected]
* @time 2018/10/13 10:07
*/
public interface AddService {

/**
* 普通加法
* @param a
* @param b
* @return
*/
int add(int a, int b);
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
package com.bolingcavalry.api.service;

import com.bolingcavalry.api.exception.MinusException;

/**
* @author wilzhao
* @description 减法服务
* @email [email protected]
* @time 2018/10/13 12:07
*/
public interface MinusService {
/**
* 普通减法
* @param minuend 减数
* @param subtraction 被减数
* @return 差
*/
int minus(int minuend, int subtraction) throws MinusException;
}
43 changes: 43 additions & 0 deletions customizestarter/customizeservicestarter/pom.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
<?xml version="1.0" encoding="UTF-8"?>
<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">
<parent>
<artifactId>customizestarter</artifactId>
<groupId>com.bolingcavalry</groupId>
<version>0.0.1-SNAPSHOT</version>
<relativePath>../</relativePath>
</parent>
<artifactId>customizeservicestarter</artifactId>
<modelVersion>4.0.0</modelVersion>


<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-autoconfigure</artifactId>
<!--仅编译时才需要-->
<scope>provided</scope>
</dependency>

<dependency>
<groupId>com.bolingcavalry</groupId>
<artifactId>customizeapi</artifactId>
<version>${project.version}</version>
</dependency>

<dependency>
<groupId>com.bolingcavalry</groupId>
<artifactId>addservice</artifactId>
<version>${project.version}</version>
</dependency>

<dependency>
<groupId>com.bolingcavalry</groupId>
<artifactId>minusservice</artifactId>
<version>${project.version}</version>
</dependency>
</dependencies>


</project>
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
package com.bolingcavalry.customizeservicestarter;

import com.bolingcavalry.addservice.service.impl.AddServiceImpl;
import com.bolingcavalry.api.service.AddService;
import com.bolingcavalry.api.service.MinusService;
import com.bolingcavalry.minusservice.service.impl.MinusServiceNotSupportNegativeImpl;
import com.bolingcavalry.minusservice.service.impl.MinusServiceSupportNegativeImpl;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

/**
* @author wilzhao
* @description 一句话介绍
* @email [email protected]
* @time 2018/10/13 14:36
*/
@Configuration
public class CustomizeConfiguration {

@Bean
public AddService getAddService(){
System.out.println("create addService");
return new AddServiceImpl();
}

/**
* 如果配置了com.bolingcavalry.supportnegative=true,
* 就实例化MinusServiceSupportNegativeImpl
* @return
*/
@Bean
@ConditionalOnProperty(prefix="com.bolingcavalry",name = "supportnegative", havingValue = "true")
public MinusService getSupportMinusService(){
System.out.println("create minusService support minus");
return new MinusServiceSupportNegativeImpl();
}

/**
* 如果没有配置com.bolingcavalry.supportnegative=true,
* 就不会实例化MinusServiceSupportNegativeImpl,
* 这里的条件是如果没有MinusService类型的bean,就在此实例化一个
* @return
*/
@Bean
@ConditionalOnMissingBean(MinusService.class)
public MinusService getNotSupportMinusService(){
System.out.println("create minusService not support minus");
return new MinusServiceNotSupportNegativeImpl();
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
org.springframework.boot.autoconfigure.EnableAutoConfiguration=com.bolingcavalry.customizeservicestarter.CustomizeConfiguration
22 changes: 22 additions & 0 deletions customizestarter/minusservice/pom.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
<?xml version="1.0" encoding="UTF-8"?>
<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">
<parent>
<artifactId>customizestarter</artifactId>
<groupId>com.bolingcavalry</groupId>
<version>0.0.1-SNAPSHOT</version>
<relativePath>../</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>

<artifactId>minusservice</artifactId>

<dependencies>
<dependency>
<groupId>com.bolingcavalry</groupId>
<artifactId>customizeapi</artifactId>
<version>${project.version}</version>
</dependency>
</dependencies>
</project>
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
package com.bolingcavalry.minusservice.service.impl;

import com.bolingcavalry.api.exception.MinusException;
import com.bolingcavalry.api.service.MinusService;

/**
* @author wilzhao
* @description 减法服务的实现,不支持负数
* @email [email protected]
* @time 2018/10/13 14:24
*/
public class MinusServiceNotSupportNegativeImpl implements MinusService {

/**
* 减法运算,不支持负数结果,如果被减数小于减数,就跑出MinusException
* @param minuend 被减数
* @param subtraction 减数
* @return
* @throws MinusException
*/
public int minus(int minuend, int subtraction) throws MinusException {
if(subtraction>minuend){
throw new MinusException("not support negative!");
}

return minuend-subtraction;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
package com.bolingcavalry.minusservice.service.impl;

import com.bolingcavalry.api.exception.MinusException;
import com.bolingcavalry.api.service.MinusService;

/**
* @author wilzhao
* @description 支持负数结果的减法服务
* @email [email protected]
* @time 2018/10/13 14:30
*/
public class MinusServiceSupportNegativeImpl implements MinusService {

/**
* 减法实现,支持负数
* @param minuend 减数
* @param subtraction 被减数
* @return
* @throws MinusException
*/
public int minus(int minuend, int subtraction) throws MinusException {
return minuend - subtraction;
}
}
35 changes: 35 additions & 0 deletions customizestarter/pom.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
<?xml version="1.0" encoding="UTF-8"?>
<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.bolingcavalry</groupId>
<artifactId>customizestarter</artifactId>
<packaging>pom</packaging>
<version>0.0.1-SNAPSHOT</version>

<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>

<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.9.RELEASE</version>
<relativePath/>
</parent>

<modules>
<!--加法服务-->
<module>addservice</module>
<!--减法服务-->
<module>minusservice</module>
<!--接口和异常定义-->
<module>customizeapi</module>
<!--启动器-->
<module>customizeservicestarter</module>
</modules>


</project>
25 changes: 25 additions & 0 deletions customizestartertestdemo/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
/target/
!.mvn/wrapper/maven-wrapper.jar

### STS ###
.apt_generated
.classpath
.factorypath
.project
.settings
.springBeans
.sts4-cache

### IntelliJ IDEA ###
.idea
*.iws
*.iml
*.ipr

### NetBeans ###
/nbproject/private/
/build/
/nbbuild/
/dist/
/nbdist/
/.nb-gradle/
Binary file not shown.
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
distributionUrl=https://repo1.maven.org/maven2/org/apache/maven/apache-maven/3.5.4/apache-maven-3.5.4-bin.zip
Loading

0 comments on commit 6422aec

Please sign in to comment.