parent
77cfec981c
commit
78f85256d6
@ -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"> |
||||||
|
<modelVersion>4.0.0</modelVersion> |
||||||
|
<groupId>com.gitee.sop</groupId> |
||||||
|
<artifactId>sop-book-parent</artifactId> |
||||||
|
<version>1.0.0-SNAPSHOT</version> |
||||||
|
<packaging>pom</packaging> |
||||||
|
|
||||||
|
<modules> |
||||||
|
<module>sop-book-api</module> |
||||||
|
<module>sop-book-web</module> |
||||||
|
</modules> |
||||||
|
</project> |
@ -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/ |
||||||
|
/nbbuild/ |
||||||
|
/dist/ |
||||||
|
/nbdist/ |
||||||
|
/.nb-gradle/ |
||||||
|
/build/ |
@ -0,0 +1,46 @@ |
|||||||
|
<?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> |
||||||
|
<parent> |
||||||
|
<groupId>org.springframework.boot</groupId> |
||||||
|
<artifactId>spring-boot-starter-parent</artifactId> |
||||||
|
<version>2.1.2.RELEASE</version> |
||||||
|
<relativePath/> <!-- lookup parent from repository --> |
||||||
|
</parent> |
||||||
|
<groupId>com.gitee.sop</groupId> |
||||||
|
<artifactId>sop-book-api</artifactId> |
||||||
|
<version>1.0-SNAPSHOT</version> |
||||||
|
|
||||||
|
<properties> |
||||||
|
<java.version>1.8</java.version> |
||||||
|
<spring-cloud.version>Greenwich.RELEASE</spring-cloud.version> |
||||||
|
</properties> |
||||||
|
|
||||||
|
<dependencies> |
||||||
|
<dependency> |
||||||
|
<groupId>org.springframework.boot</groupId> |
||||||
|
<artifactId>spring-boot-starter-web</artifactId> |
||||||
|
</dependency> |
||||||
|
|
||||||
|
<dependency> |
||||||
|
<groupId>org.projectlombok</groupId> |
||||||
|
<artifactId>lombok</artifactId> |
||||||
|
<version>1.18.4</version> |
||||||
|
<scope>provided</scope> |
||||||
|
</dependency> |
||||||
|
</dependencies> |
||||||
|
|
||||||
|
<dependencyManagement> |
||||||
|
<dependencies> |
||||||
|
<dependency> |
||||||
|
<groupId>org.springframework.cloud</groupId> |
||||||
|
<artifactId>spring-cloud-dependencies</artifactId> |
||||||
|
<version>${spring-cloud.version}</version> |
||||||
|
<type>pom</type> |
||||||
|
<scope>import</scope> |
||||||
|
</dependency> |
||||||
|
</dependencies> |
||||||
|
</dependencyManagement> |
||||||
|
</project> |
@ -0,0 +1,12 @@ |
|||||||
|
package com.hhdd.book.api.domain; |
||||||
|
|
||||||
|
import lombok.Data; |
||||||
|
|
||||||
|
/** |
||||||
|
* @author tanghc |
||||||
|
*/ |
||||||
|
@Data |
||||||
|
public class Book { |
||||||
|
private int id; |
||||||
|
private String name; |
||||||
|
} |
@ -0,0 +1,14 @@ |
|||||||
|
package com.hhdd.book.api.service; |
||||||
|
|
||||||
|
import com.gitee.book.api.domain.Book; |
||||||
|
import org.springframework.web.bind.annotation.RequestMapping; |
||||||
|
import org.springframework.web.bind.annotation.RequestParam; |
||||||
|
|
||||||
|
/** |
||||||
|
* @author tanghc |
||||||
|
*/ |
||||||
|
@RequestMapping("/book") |
||||||
|
public interface BookService { |
||||||
|
@RequestMapping("/getBook") |
||||||
|
Book getBook(@RequestParam("id") int id); |
||||||
|
} |
@ -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/ |
||||||
|
/nbbuild/ |
||||||
|
/dist/ |
||||||
|
/nbdist/ |
||||||
|
/.nb-gradle/ |
||||||
|
/build/ |
@ -0,0 +1,89 @@ |
|||||||
|
<?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> |
||||||
|
<parent> |
||||||
|
<groupId>org.springframework.boot</groupId> |
||||||
|
<artifactId>spring-boot-starter-parent</artifactId> |
||||||
|
<version>2.1.2.RELEASE</version> |
||||||
|
<relativePath/> <!-- lookup parent from repository --> |
||||||
|
</parent> |
||||||
|
<groupId>com.gitee.sop</groupId> |
||||||
|
<artifactId>sop-book-web</artifactId> |
||||||
|
<version>0.0.1-SNAPSHOT</version> |
||||||
|
<name>sop-story</name> |
||||||
|
<description>Demo project for Spring Boot</description> |
||||||
|
|
||||||
|
<properties> |
||||||
|
<java.version>1.8</java.version> |
||||||
|
<spring-cloud.version>Greenwich.RELEASE</spring-cloud.version> |
||||||
|
</properties> |
||||||
|
|
||||||
|
<dependencies> |
||||||
|
<dependency> |
||||||
|
<groupId>com.gitee.sop</groupId> |
||||||
|
<artifactId>sop-service-common</artifactId> |
||||||
|
<version>1.0.0-SNAPSHOT</version> |
||||||
|
</dependency> |
||||||
|
<dependency> |
||||||
|
<groupId>com.gitee.sop</groupId> |
||||||
|
<artifactId>sop-book-api</artifactId> |
||||||
|
<version>1.0-SNAPSHOT</version> |
||||||
|
</dependency> |
||||||
|
<dependency> |
||||||
|
<groupId>com.gitee.sop</groupId> |
||||||
|
<artifactId>sop-story-api</artifactId> |
||||||
|
<version>1.0-SNAPSHOT</version> |
||||||
|
</dependency> |
||||||
|
<dependency> |
||||||
|
<groupId>org.springframework.cloud</groupId> |
||||||
|
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId> |
||||||
|
</dependency> |
||||||
|
<dependency> |
||||||
|
<groupId>org.springframework.cloud</groupId> |
||||||
|
<artifactId>spring-cloud-starter-openfeign</artifactId> |
||||||
|
</dependency> |
||||||
|
|
||||||
|
<dependency> |
||||||
|
<groupId>org.springframework.boot</groupId> |
||||||
|
<artifactId>spring-boot-starter-test</artifactId> |
||||||
|
<scope>test</scope> |
||||||
|
</dependency> |
||||||
|
<dependency> |
||||||
|
<groupId>org.projectlombok</groupId> |
||||||
|
<artifactId>lombok</artifactId> |
||||||
|
<version>1.18.4</version> |
||||||
|
<scope>compile</scope> |
||||||
|
</dependency> |
||||||
|
</dependencies> |
||||||
|
|
||||||
|
<dependencyManagement> |
||||||
|
<dependencies> |
||||||
|
<dependency> |
||||||
|
<groupId>org.springframework.cloud</groupId> |
||||||
|
<artifactId>spring-cloud-dependencies</artifactId> |
||||||
|
<version>${spring-cloud.version}</version> |
||||||
|
<type>pom</type> |
||||||
|
<scope>import</scope> |
||||||
|
</dependency> |
||||||
|
</dependencies> |
||||||
|
</dependencyManagement> |
||||||
|
|
||||||
|
<build> |
||||||
|
<plugins> |
||||||
|
<plugin> |
||||||
|
<groupId>org.springframework.boot</groupId> |
||||||
|
<artifactId>spring-boot-maven-plugin</artifactId> |
||||||
|
</plugin> |
||||||
|
</plugins> |
||||||
|
</build> |
||||||
|
|
||||||
|
<repositories> |
||||||
|
<repository> |
||||||
|
<id>spring-milestones</id> |
||||||
|
<name>Spring Milestones</name> |
||||||
|
<url>https://repo.spring.io/milestone</url> |
||||||
|
</repository> |
||||||
|
</repositories> |
||||||
|
|
||||||
|
</project> |
@ -0,0 +1,20 @@ |
|||||||
|
package com.gitee.sop.bookweb; |
||||||
|
|
||||||
|
import org.springframework.boot.SpringApplication; |
||||||
|
import org.springframework.boot.autoconfigure.SpringBootApplication; |
||||||
|
import org.springframework.cloud.client.discovery.EnableDiscoveryClient; |
||||||
|
import org.springframework.cloud.openfeign.EnableFeignClients; |
||||||
|
|
||||||
|
// 允许调用其他服务
|
||||||
|
@EnableFeignClients |
||||||
|
// 服务注册
|
||||||
|
@EnableDiscoveryClient |
||||||
|
@SpringBootApplication |
||||||
|
public class SopBookApplication { |
||||||
|
|
||||||
|
public static void main(String[] args) { |
||||||
|
SpringApplication.run(SopBookApplication.class, args); |
||||||
|
} |
||||||
|
|
||||||
|
} |
||||||
|
|
@ -0,0 +1,22 @@ |
|||||||
|
package com.gitee.sop.bookweb.config; |
||||||
|
|
||||||
|
import com.gitee.sop.servercommon.configuration.AlipayServiceConfiguration; |
||||||
|
import org.springframework.context.annotation.Configuration; |
||||||
|
|
||||||
|
/** |
||||||
|
* 使用支付宝开放平台功能 |
||||||
|
* @author tanghc |
||||||
|
*/ |
||||||
|
@Configuration |
||||||
|
public class OpenServiceConfig extends AlipayServiceConfiguration { |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 使用淘宝开放平台功能 |
||||||
|
* @author tanghc |
||||||
|
*/ |
||||||
|
//@Configuration
|
||||||
|
//public class OpenServiceConfig extends TaobaoServiceConfiguration {
|
||||||
|
//
|
||||||
|
//}
|
@ -0,0 +1,14 @@ |
|||||||
|
package com.gitee.sop.bookweb.consumer; |
||||||
|
|
||||||
|
import com.gitee.sop.story.api.service.StoryService; |
||||||
|
import org.springframework.cloud.openfeign.FeignClient; |
||||||
|
|
||||||
|
/** |
||||||
|
* 调用story服务 |
||||||
|
* |
||||||
|
* @author tanghc |
||||||
|
*/ |
||||||
|
// value对应的spring.application.name
|
||||||
|
@FeignClient("story-service") |
||||||
|
public interface StoryServiceConsumer extends StoryService { |
||||||
|
} |
@ -0,0 +1,40 @@ |
|||||||
|
package com.gitee.sop.bookweb.controller; |
||||||
|
|
||||||
|
import com.gitee.sop.bookweb.consumer.StoryServiceConsumer; |
||||||
|
import com.gitee.sop.servercommon.annotation.ApiMapping; |
||||||
|
import com.gitee.sop.story.api.domain.Story; |
||||||
|
import org.springframework.beans.factory.annotation.Autowired; |
||||||
|
import org.springframework.web.bind.annotation.RestController; |
||||||
|
|
||||||
|
import java.util.Arrays; |
||||||
|
|
||||||
|
/** |
||||||
|
* 支付宝服务端,假设签名验证通过后,到达这里进行具体的业务处理。 |
||||||
|
* 这里演示如何接受业务参数。 |
||||||
|
* @author tanghc |
||||||
|
*/ |
||||||
|
@RestController |
||||||
|
public class AlipayBookController { |
||||||
|
|
||||||
|
@Autowired |
||||||
|
StoryServiceConsumer storyServiceConsumer; |
||||||
|
|
||||||
|
@ApiMapping(value = "alipay.book.get") |
||||||
|
public Story getBook() { |
||||||
|
Story story = new Story(); |
||||||
|
story.setId(1); |
||||||
|
story.setName("白雪公主(alipay.book.get)"); |
||||||
|
return story; |
||||||
|
} |
||||||
|
|
||||||
|
// 调用story服务
|
||||||
|
@ApiMapping(value = "alipay.book.story.get") |
||||||
|
public Object getBook2() { |
||||||
|
Story story = new Story(); |
||||||
|
story.setId(1); |
||||||
|
story.setName("白雪公主(alipay.book.story.get)"); |
||||||
|
Story story2 = storyServiceConsumer.getStory(1); |
||||||
|
return Arrays.asList(story, story2); |
||||||
|
} |
||||||
|
|
||||||
|
} |
@ -0,0 +1,74 @@ |
|||||||
|
package com.gitee.sop.bookweb.controller; |
||||||
|
|
||||||
|
import com.thoughtworks.xstream.annotations.XStreamAlias; |
||||||
|
import lombok.Data; |
||||||
|
|
||||||
|
/** |
||||||
|
* 默认的结果封装类. |
||||||
|
* <pre> |
||||||
|
* |
||||||
|
* xml返回结果: |
||||||
|
* <response> |
||||||
|
* <code>50</code> |
||||||
|
* <msg>Remote service error</msg> |
||||||
|
* <sub_code>isv.invalid-parameter</sub_code> |
||||||
|
* <sub_msg>非法参数</sub_msg> |
||||||
|
* </response> |
||||||
|
* 成功情况: |
||||||
|
* <response> |
||||||
|
* <code>0</code> |
||||||
|
* <msg>成功消息</msg> |
||||||
|
* <data> |
||||||
|
* ...返回内容 |
||||||
|
* </data> |
||||||
|
* </response> |
||||||
|
* |
||||||
|
* json返回格式: |
||||||
|
* { |
||||||
|
* "code":"50", |
||||||
|
* "msg":"Remote service error", |
||||||
|
* "sub_code":"isv.invalid-parameter", |
||||||
|
* "sub_msg":"非法参数" |
||||||
|
* } |
||||||
|
* 成功情况: |
||||||
|
* { |
||||||
|
* "code":"0", |
||||||
|
* "msg":"成功消息内容。。。", |
||||||
|
* "data":{ |
||||||
|
* ...返回内容 |
||||||
|
* } |
||||||
|
* } |
||||||
|
* </pre> |
||||||
|
* <p> |
||||||
|
* 字段说明: |
||||||
|
* code:网关异常码 <br> |
||||||
|
* msg:网关异常信息 <br> |
||||||
|
* sub_code:业务异常码 <br> |
||||||
|
* sub_msg:业务异常信息 <br> |
||||||
|
* |
||||||
|
* @author tanghc |
||||||
|
*/ |
||||||
|
@XStreamAlias("response") |
||||||
|
@Data |
||||||
|
public class ApiResult { |
||||||
|
|
||||||
|
/** |
||||||
|
* 网关异常信息 |
||||||
|
*/ |
||||||
|
private String msg; |
||||||
|
|
||||||
|
/** |
||||||
|
* 业务异常码 |
||||||
|
*/ |
||||||
|
private String sub_msg; |
||||||
|
|
||||||
|
/** |
||||||
|
* 业务异常信息 |
||||||
|
*/ |
||||||
|
private String sub_code; |
||||||
|
|
||||||
|
/** |
||||||
|
* 返回结果 |
||||||
|
*/ |
||||||
|
private Object data; |
||||||
|
} |
@ -0,0 +1,73 @@ |
|||||||
|
package com.gitee.sop.bookweb.controller; |
||||||
|
|
||||||
|
import com.gitee.book.api.domain.Book; |
||||||
|
import com.gitee.sop.bookweb.consumer.StoryServiceConsumer; |
||||||
|
import com.gitee.sop.bookweb.param.BookParam; |
||||||
|
import com.gitee.sop.story.api.domain.Story; |
||||||
|
import com.hhdd.book.api.service.BookService; |
||||||
|
import org.springframework.beans.factory.annotation.Autowired; |
||||||
|
import org.springframework.web.bind.annotation.RequestBody; |
||||||
|
import org.springframework.web.bind.annotation.RequestMapping; |
||||||
|
import org.springframework.web.bind.annotation.RestController; |
||||||
|
|
||||||
|
import java.util.Arrays; |
||||||
|
|
||||||
|
/** |
||||||
|
* book服务 |
||||||
|
* |
||||||
|
* @author tanghc |
||||||
|
*/ |
||||||
|
@RestController |
||||||
|
public class BookController implements BookService { |
||||||
|
|
||||||
|
@Autowired |
||||||
|
StoryServiceConsumer storyServiceConsumer; |
||||||
|
|
||||||
|
@Override |
||||||
|
public Book getBook(int id) { |
||||||
|
Book book = new Book(); |
||||||
|
book.setId(id); |
||||||
|
book.setName("汪汪队"); |
||||||
|
return book; |
||||||
|
} |
||||||
|
|
||||||
|
@RequestMapping("listBookAndStory") |
||||||
|
public Object listBookAndStory(int id) { |
||||||
|
Book book = new Book(); |
||||||
|
book.setId(id); |
||||||
|
book.setName("汪汪队"); |
||||||
|
|
||||||
|
// 调用story服务
|
||||||
|
Story story = storyServiceConsumer.getStory(id); |
||||||
|
|
||||||
|
return Arrays.asList(book, story); |
||||||
|
} |
||||||
|
|
||||||
|
@RequestMapping("getBook2") |
||||||
|
public Object getBookError(int id) { |
||||||
|
if (id == 0) { |
||||||
|
throw new RuntimeException("id不能为空"); |
||||||
|
} |
||||||
|
Book book = new Book(); |
||||||
|
book.setId(id); |
||||||
|
book.setName("汪汪队"); |
||||||
|
return Arrays.asList(book); |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@RequestMapping("getBook3") |
||||||
|
public Object getBook3(@RequestBody BookParam param) { |
||||||
|
if (param.getId() == 0) { |
||||||
|
throw new RuntimeException("id不能为空"); |
||||||
|
} |
||||||
|
Book book = new Book(); |
||||||
|
book.setId(param.getId()); |
||||||
|
book.setName("小马宝莉"); |
||||||
|
|
||||||
|
ApiResult apiResult = new ApiResult(); |
||||||
|
apiResult.setData(book); |
||||||
|
return apiResult; |
||||||
|
} |
||||||
|
|
||||||
|
} |
@ -0,0 +1,11 @@ |
|||||||
|
package com.gitee.sop.bookweb.param; |
||||||
|
|
||||||
|
import lombok.Data; |
||||||
|
|
||||||
|
/** |
||||||
|
* @author tanghc |
||||||
|
*/ |
||||||
|
@Data |
||||||
|
public class BookParam { |
||||||
|
private int id; |
||||||
|
} |
@ -0,0 +1,9 @@ |
|||||||
|
server: |
||||||
|
port: 3333 |
||||||
|
|
||||||
|
eureka: |
||||||
|
port: 1111 |
||||||
|
host: localhost |
||||||
|
client: |
||||||
|
serviceUrl: |
||||||
|
defaultZone: http://${eureka.host}:${eureka.port}/eureka/ |
@ -0,0 +1,7 @@ |
|||||||
|
spring: |
||||||
|
application: |
||||||
|
name: book-service |
||||||
|
|
||||||
|
cloud: |
||||||
|
zookeeper: |
||||||
|
connect-string: localhost:2181 |
@ -0,0 +1,17 @@ |
|||||||
|
package com.gitee.sop.bookweb; |
||||||
|
|
||||||
|
import org.junit.Test; |
||||||
|
import org.junit.runner.RunWith; |
||||||
|
import org.springframework.boot.test.context.SpringBootTest; |
||||||
|
import org.springframework.test.context.junit4.SpringRunner; |
||||||
|
|
||||||
|
@RunWith(SpringRunner.class) |
||||||
|
@SpringBootTest |
||||||
|
public class SopBookApplicationTests { |
||||||
|
|
||||||
|
@Test |
||||||
|
public void contextLoads() { |
||||||
|
} |
||||||
|
|
||||||
|
} |
||||||
|
|
@ -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"> |
||||||
|
<modelVersion>4.0.0</modelVersion> |
||||||
|
<groupId>com.gitee.sop-story</groupId> |
||||||
|
<artifactId>sop-story-parent</artifactId> |
||||||
|
<version>1.0.0-SNAPSHOT</version> |
||||||
|
<packaging>pom</packaging> |
||||||
|
|
||||||
|
<modules> |
||||||
|
<module>sop-story-api</module> |
||||||
|
<module>sop-story-web</module> |
||||||
|
</modules> |
||||||
|
</project> |
@ -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/ |
||||||
|
/nbbuild/ |
||||||
|
/dist/ |
||||||
|
/nbdist/ |
||||||
|
/.nb-gradle/ |
||||||
|
/build/ |
@ -0,0 +1,46 @@ |
|||||||
|
<?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> |
||||||
|
<parent> |
||||||
|
<groupId>org.springframework.boot</groupId> |
||||||
|
<artifactId>spring-boot-starter-parent</artifactId> |
||||||
|
<version>2.1.2.RELEASE</version> |
||||||
|
<relativePath/> <!-- lookup parent from repository --> |
||||||
|
</parent> |
||||||
|
<groupId>com.gitee.sop</groupId> |
||||||
|
<artifactId>sop-story-api</artifactId> |
||||||
|
<version>1.0-SNAPSHOT</version> |
||||||
|
|
||||||
|
<properties> |
||||||
|
<java.version>1.8</java.version> |
||||||
|
<spring-cloud.version>Greenwich.RELEASE</spring-cloud.version> |
||||||
|
</properties> |
||||||
|
|
||||||
|
<dependencies> |
||||||
|
<dependency> |
||||||
|
<groupId>org.springframework.boot</groupId> |
||||||
|
<artifactId>spring-boot-starter-web</artifactId> |
||||||
|
</dependency> |
||||||
|
|
||||||
|
<dependency> |
||||||
|
<groupId>org.projectlombok</groupId> |
||||||
|
<artifactId>lombok</artifactId> |
||||||
|
<version>1.18.4</version> |
||||||
|
<scope>provided</scope> |
||||||
|
</dependency> |
||||||
|
</dependencies> |
||||||
|
|
||||||
|
<dependencyManagement> |
||||||
|
<dependencies> |
||||||
|
<dependency> |
||||||
|
<groupId>org.springframework.cloud</groupId> |
||||||
|
<artifactId>spring-cloud-dependencies</artifactId> |
||||||
|
<version>${spring-cloud.version}</version> |
||||||
|
<type>pom</type> |
||||||
|
<scope>import</scope> |
||||||
|
</dependency> |
||||||
|
</dependencies> |
||||||
|
</dependencyManagement> |
||||||
|
</project> |
@ -0,0 +1,18 @@ |
|||||||
|
package com.gitee.sop.story.api.domain; |
||||||
|
|
||||||
|
import lombok.Data; |
||||||
|
import org.hibernate.validator.constraints.Length; |
||||||
|
|
||||||
|
import javax.validation.constraints.NotBlank; |
||||||
|
|
||||||
|
/** |
||||||
|
* @author tanghc |
||||||
|
*/ |
||||||
|
@Data |
||||||
|
public class Story { |
||||||
|
private int id; |
||||||
|
|
||||||
|
@NotBlank(message = "name不能为空") |
||||||
|
@Length(max = 20, message = "name长度不能超过20") |
||||||
|
private String name; |
||||||
|
} |
@ -0,0 +1,15 @@ |
|||||||
|
package com.gitee.sop.story.api.service; |
||||||
|
|
||||||
|
import com.gitee.sop.story.api.domain.Story; |
||||||
|
import org.springframework.web.bind.annotation.RequestMapping; |
||||||
|
import org.springframework.web.bind.annotation.RequestParam; |
||||||
|
|
||||||
|
/** |
||||||
|
* @author tanghc |
||||||
|
*/ |
||||||
|
@RequestMapping("/story") |
||||||
|
public interface StoryService { |
||||||
|
@RequestMapping("/getStory") |
||||||
|
Story getStory(@RequestParam("id")/* 必须指定@RequestParam,且value不能少 */ |
||||||
|
int id); |
||||||
|
} |
@ -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/ |
||||||
|
/nbbuild/ |
||||||
|
/dist/ |
||||||
|
/nbdist/ |
||||||
|
/.nb-gradle/ |
||||||
|
/build/ |
@ -0,0 +1,84 @@ |
|||||||
|
<?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> |
||||||
|
<parent> |
||||||
|
<groupId>org.springframework.boot</groupId> |
||||||
|
<artifactId>spring-boot-starter-parent</artifactId> |
||||||
|
<version>2.1.2.RELEASE</version> |
||||||
|
<relativePath/> <!-- lookup parent from repository --> |
||||||
|
</parent> |
||||||
|
<groupId>com.gitee.sop</groupId> |
||||||
|
<artifactId>sop-story-web</artifactId> |
||||||
|
<version>0.0.1-SNAPSHOT</version> |
||||||
|
<name>sop-story</name> |
||||||
|
<description>Demo project for Spring Boot</description> |
||||||
|
|
||||||
|
<properties> |
||||||
|
<java.version>1.8</java.version> |
||||||
|
<spring-cloud.version>Greenwich.RELEASE</spring-cloud.version> |
||||||
|
</properties> |
||||||
|
|
||||||
|
<dependencies> |
||||||
|
<dependency> |
||||||
|
<groupId>com.gitee.sop</groupId> |
||||||
|
<artifactId>sop-service-common</artifactId> |
||||||
|
<version>1.0.0-SNAPSHOT</version> |
||||||
|
</dependency> |
||||||
|
<dependency> |
||||||
|
<groupId>com.gitee.sop</groupId> |
||||||
|
<artifactId>sop-story-api</artifactId> |
||||||
|
<version>1.0-SNAPSHOT</version> |
||||||
|
</dependency> |
||||||
|
<dependency> |
||||||
|
<groupId>org.springframework.cloud</groupId> |
||||||
|
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId> |
||||||
|
</dependency> |
||||||
|
<dependency> |
||||||
|
<groupId>org.springframework.cloud</groupId> |
||||||
|
<artifactId>spring-cloud-starter-openfeign</artifactId> |
||||||
|
</dependency> |
||||||
|
|
||||||
|
<dependency> |
||||||
|
<groupId>org.springframework.boot</groupId> |
||||||
|
<artifactId>spring-boot-starter-test</artifactId> |
||||||
|
<scope>test</scope> |
||||||
|
</dependency> |
||||||
|
<dependency> |
||||||
|
<groupId>org.projectlombok</groupId> |
||||||
|
<artifactId>lombok</artifactId> |
||||||
|
<version>1.18.4</version> |
||||||
|
<scope>provided</scope> |
||||||
|
</dependency> |
||||||
|
</dependencies> |
||||||
|
|
||||||
|
<dependencyManagement> |
||||||
|
<dependencies> |
||||||
|
<dependency> |
||||||
|
<groupId>org.springframework.cloud</groupId> |
||||||
|
<artifactId>spring-cloud-dependencies</artifactId> |
||||||
|
<version>${spring-cloud.version}</version> |
||||||
|
<type>pom</type> |
||||||
|
<scope>import</scope> |
||||||
|
</dependency> |
||||||
|
</dependencies> |
||||||
|
</dependencyManagement> |
||||||
|
|
||||||
|
<build> |
||||||
|
<plugins> |
||||||
|
<plugin> |
||||||
|
<groupId>org.springframework.boot</groupId> |
||||||
|
<artifactId>spring-boot-maven-plugin</artifactId> |
||||||
|
</plugin> |
||||||
|
</plugins> |
||||||
|
</build> |
||||||
|
|
||||||
|
<repositories> |
||||||
|
<repository> |
||||||
|
<id>spring-milestones</id> |
||||||
|
<name>Spring Milestones</name> |
||||||
|
<url>https://repo.spring.io/milestone</url> |
||||||
|
</repository> |
||||||
|
</repositories> |
||||||
|
|
||||||
|
</project> |
@ -0,0 +1,16 @@ |
|||||||
|
package com.gitee.sop.bookweb; |
||||||
|
|
||||||
|
import org.springframework.boot.SpringApplication; |
||||||
|
import org.springframework.boot.autoconfigure.SpringBootApplication; |
||||||
|
import org.springframework.cloud.client.discovery.EnableDiscoveryClient; |
||||||
|
|
||||||
|
@EnableDiscoveryClient |
||||||
|
@SpringBootApplication |
||||||
|
public class SopStoryApplication { |
||||||
|
|
||||||
|
public static void main(String[] args) { |
||||||
|
SpringApplication.run(SopStoryApplication.class, args); |
||||||
|
} |
||||||
|
|
||||||
|
} |
||||||
|
|
@ -0,0 +1,31 @@ |
|||||||
|
package com.gitee.sop.bookweb.config; |
||||||
|
|
||||||
|
import com.gitee.sop.servercommon.bean.ServiceConfig; |
||||||
|
import com.gitee.sop.servercommon.configuration.AlipayServiceConfiguration; |
||||||
|
import com.gitee.sop.servercommon.configuration.TaobaoServiceConfiguration; |
||||||
|
import org.springframework.context.annotation.Configuration; |
||||||
|
|
||||||
|
import javax.annotation.PostConstruct; |
||||||
|
|
||||||
|
/** |
||||||
|
* 使用支付宝开放平台功能 |
||||||
|
* @author tanghc |
||||||
|
*/ |
||||||
|
@Configuration |
||||||
|
public class OpenServiceConfig extends AlipayServiceConfiguration { |
||||||
|
|
||||||
|
|
||||||
|
static { |
||||||
|
ServiceConfig.getInstance().getI18nModules().add("i18n/isp/goods_error"); |
||||||
|
} |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 使用淘宝开放平台功能 |
||||||
|
* @author tanghc |
||||||
|
*/ |
||||||
|
//@Configuration
|
||||||
|
//public class OpenServiceConfig extends TaobaoServiceConfiguration {
|
||||||
|
//
|
||||||
|
//}
|
@ -0,0 +1,27 @@ |
|||||||
|
package com.gitee.sop.bookweb.controller; |
||||||
|
|
||||||
|
import com.gitee.sop.servercommon.annotation.ApiMapping; |
||||||
|
import com.gitee.sop.story.api.domain.Story; |
||||||
|
import org.springframework.web.bind.annotation.RestController; |
||||||
|
|
||||||
|
/** |
||||||
|
* 支付宝服务端,假设签名验证通过后,到达这里进行具体的业务处理。 |
||||||
|
* 这里演示如何接受业务参数。 |
||||||
|
* @author tanghc |
||||||
|
*/ |
||||||
|
@RestController |
||||||
|
public class AlipayController { |
||||||
|
|
||||||
|
@ApiMapping(value = "alipay.story.get") |
||||||
|
public Story getStory() { |
||||||
|
Story story = new Story(); |
||||||
|
story.setId(1); |
||||||
|
story.setName("海底小纵队(alipay.story.get)"); |
||||||
|
return story; |
||||||
|
} |
||||||
|
|
||||||
|
@ApiMapping(value = "alipay.story.get", version = "1.2") |
||||||
|
public Story getStory11(Story story) { |
||||||
|
return story; |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,18 @@ |
|||||||
|
package com.gitee.sop.bookweb.controller; |
||||||
|
|
||||||
|
import com.gitee.sop.bookweb.controller.param.GoodsParam; |
||||||
|
import com.gitee.sop.servercommon.annotation.ApiMapping; |
||||||
|
import org.springframework.web.bind.annotation.RestController; |
||||||
|
|
||||||
|
/** |
||||||
|
* 演示参数验证 |
||||||
|
* @author tanghc |
||||||
|
*/ |
||||||
|
@RestController |
||||||
|
public class JSR303DemoController { |
||||||
|
|
||||||
|
@ApiMapping(value = "goods.add") |
||||||
|
public Object addGoods(GoodsParam param) { |
||||||
|
return param; |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,46 @@ |
|||||||
|
package com.gitee.sop.bookweb.controller; |
||||||
|
|
||||||
|
import com.gitee.sop.servercommon.annotation.ApiAbility; |
||||||
|
import com.gitee.sop.servercommon.annotation.ApiMapping; |
||||||
|
import com.gitee.sop.story.api.domain.Story; |
||||||
|
import com.gitee.sop.story.api.service.StoryService; |
||||||
|
import org.springframework.web.bind.annotation.RequestMapping; |
||||||
|
import org.springframework.web.bind.annotation.RestController; |
||||||
|
|
||||||
|
/** |
||||||
|
* @author tanghc |
||||||
|
*/ |
||||||
|
@ApiAbility // 放在这里,下面所有的接口都具备接口提供能力
|
||||||
|
@RestController |
||||||
|
@RequestMapping("story2") |
||||||
|
public class Story2Controller{ |
||||||
|
|
||||||
|
@RequestMapping("getStory4") |
||||||
|
public Story getStory4() { |
||||||
|
Story story = new Story(); |
||||||
|
story.setId(1); |
||||||
|
story.setName("海底小纵队(getStory4)"); |
||||||
|
return story; |
||||||
|
} |
||||||
|
|
||||||
|
// 优先使用方法上@ApiAbility
|
||||||
|
@ApiAbility(version = "1.4") |
||||||
|
@RequestMapping("getStory4") |
||||||
|
public Story storyget() { |
||||||
|
Story story = new Story(); |
||||||
|
story.setId(1); |
||||||
|
story.setName("海底小纵队(1.4)"); |
||||||
|
return story; |
||||||
|
} |
||||||
|
|
||||||
|
// 优先使用@ApiMapping
|
||||||
|
@ApiMapping(value = "story.get2") |
||||||
|
public Story getStory2() { |
||||||
|
Story story = new Story(); |
||||||
|
story.setId(1); |
||||||
|
story.setName("海底小纵队story.get2"); |
||||||
|
return story; |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
} |
@ -0,0 +1,85 @@ |
|||||||
|
package com.gitee.sop.bookweb.controller; |
||||||
|
|
||||||
|
import com.gitee.sop.servercommon.annotation.ApiMapping; |
||||||
|
import com.gitee.sop.servercommon.annotation.ApiAbility; |
||||||
|
import com.gitee.sop.story.api.domain.Story; |
||||||
|
import com.gitee.sop.story.api.service.StoryService; |
||||||
|
import org.springframework.web.bind.annotation.RequestMapping; |
||||||
|
import org.springframework.web.bind.annotation.RestController; |
||||||
|
|
||||||
|
/** |
||||||
|
* @author tanghc |
||||||
|
*/ |
||||||
|
@RestController |
||||||
|
public class StoryController implements StoryService { |
||||||
|
|
||||||
|
// 提供给Feign的服务
|
||||||
|
@Override |
||||||
|
public Story getStory(int id) { |
||||||
|
Story story = new Story(); |
||||||
|
story.setId(id); |
||||||
|
story.setName("海底小纵队(Feign)"); |
||||||
|
return story; |
||||||
|
} |
||||||
|
|
||||||
|
// http://localhost:2222/story/story_get
|
||||||
|
// 原生的接口,可正常调用
|
||||||
|
@RequestMapping("story_get") |
||||||
|
public Story getStory4() { |
||||||
|
Story story = new Story(); |
||||||
|
story.setId(1); |
||||||
|
story.setName("海底小纵队(原生)"); |
||||||
|
return story; |
||||||
|
} |
||||||
|
|
||||||
|
// http://localhost:2222/story/story.get/
|
||||||
|
// 接口名,使用默认版本号
|
||||||
|
@ApiMapping(value = "story.get") |
||||||
|
public Story storyget() { |
||||||
|
Story story = new Story(); |
||||||
|
story.setId(1); |
||||||
|
story.setName("海底小纵队(默认版本号)"); |
||||||
|
return story; |
||||||
|
} |
||||||
|
|
||||||
|
// http://localhost:2222/story/story.get/?version=1.1
|
||||||
|
// 接口名 + 版本号
|
||||||
|
@ApiMapping(value = "story.get", version = "1.1") |
||||||
|
public Story getStory2() { |
||||||
|
Story story = new Story(); |
||||||
|
story.setId(1); |
||||||
|
story.setName("海底小纵队1.0"); |
||||||
|
return story; |
||||||
|
} |
||||||
|
|
||||||
|
// http://localhost:2222/story/story.get/?version=2.0
|
||||||
|
// 接口名 + 版本号
|
||||||
|
@ApiMapping(value = "story.get", version = "2.0") |
||||||
|
public Story getStory20(Story story) { |
||||||
|
return story; |
||||||
|
} |
||||||
|
|
||||||
|
// http://localhost:2222/story/getStory2
|
||||||
|
// 遗留接口具备开放平台能力
|
||||||
|
@ApiAbility |
||||||
|
@RequestMapping("getStory2") |
||||||
|
public Story getStory2_0() { |
||||||
|
Story story = new Story(); |
||||||
|
story.setId(1); |
||||||
|
story.setName("海底小纵队(默认版本号)"); |
||||||
|
return story; |
||||||
|
} |
||||||
|
|
||||||
|
// http://localhost:2222/story/getStory2?version=2.1
|
||||||
|
// 在原来的基础上加版本号
|
||||||
|
@ApiAbility(version = "2.1") |
||||||
|
@RequestMapping("getStory2") |
||||||
|
public Story getStory2_1() { |
||||||
|
Story story = new Story(); |
||||||
|
story.setId(1); |
||||||
|
story.setName("海底小纵队2.1"); |
||||||
|
return story; |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
} |
@ -0,0 +1,21 @@ |
|||||||
|
package com.gitee.sop.bookweb.controller; |
||||||
|
|
||||||
|
import com.gitee.sop.servercommon.annotation.ApiMapping; |
||||||
|
import com.gitee.sop.story.api.domain.Story; |
||||||
|
import org.springframework.web.bind.annotation.RestController; |
||||||
|
|
||||||
|
/** |
||||||
|
* @author tanghc |
||||||
|
*/ |
||||||
|
@RestController |
||||||
|
public class StoryDemoController { |
||||||
|
|
||||||
|
@ApiMapping(value = "story.demo.get") |
||||||
|
public Story getStory() { |
||||||
|
Story story = new Story(); |
||||||
|
story.setId(1); |
||||||
|
story.setName("白雪公主"); |
||||||
|
return story; |
||||||
|
} |
||||||
|
|
||||||
|
} |
@ -0,0 +1,33 @@ |
|||||||
|
package com.gitee.sop.bookweb.controller; |
||||||
|
|
||||||
|
import com.gitee.sop.bookweb.controller.param.GoodsUpdateParam; |
||||||
|
import com.gitee.sop.bookweb.message.GoodsErrorEnum; |
||||||
|
import com.gitee.sop.servercommon.annotation.ApiMapping; |
||||||
|
import com.gitee.sop.servercommon.exception.ServiceException; |
||||||
|
import org.apache.commons.lang3.StringUtils; |
||||||
|
import org.springframework.web.bind.annotation.RestController; |
||||||
|
|
||||||
|
/** |
||||||
|
* 演示如何抛出异常 |
||||||
|
* @author tanghc |
||||||
|
*/ |
||||||
|
@RestController |
||||||
|
public class ThrowExceptionDemoController { |
||||||
|
|
||||||
|
@ApiMapping(value = "goods.update") |
||||||
|
public Object updateGoods(GoodsUpdateParam param) { |
||||||
|
// 方式1
|
||||||
|
if ("iphone6".equals(param.getGoods_name())) { |
||||||
|
throw new ServiceException("不能更新iphone6"); |
||||||
|
} |
||||||
|
// 方式2,国际化
|
||||||
|
if (StringUtils.isEmpty(param.getGoods_name())) { |
||||||
|
throw GoodsErrorEnum.NO_GOODS_NAME.getErrorMeta().getException(); |
||||||
|
} |
||||||
|
// 方式3,国际化传参
|
||||||
|
if (param.getGoods_name().length() <= 3) { |
||||||
|
throw GoodsErrorEnum.LESS_GOODS_NAME_LEN.getErrorMeta().getException(3); |
||||||
|
} |
||||||
|
return param; |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,19 @@ |
|||||||
|
package com.gitee.sop.bookweb.controller.param; |
||||||
|
|
||||||
|
import lombok.Data; |
||||||
|
import org.hibernate.validator.constraints.Length; |
||||||
|
|
||||||
|
import javax.validation.constraints.NotEmpty; |
||||||
|
|
||||||
|
@Data |
||||||
|
public class GoodsParam { |
||||||
|
// @NotEmpty(message = "商品名称不能为空")
|
||||||
|
private String goods_name; |
||||||
|
|
||||||
|
@NotEmpty(message = "{goods.remark.notNull}") |
||||||
|
private String goods_remark; |
||||||
|
|
||||||
|
// 传参的格式:{xxx}=value1,value2...
|
||||||
|
@Length(min = 3, max = 20, message = "{goods.comment.length}=3,20") |
||||||
|
private String goods_comment; |
||||||
|
} |
@ -0,0 +1,9 @@ |
|||||||
|
package com.gitee.sop.bookweb.controller.param; |
||||||
|
|
||||||
|
import lombok.Data; |
||||||
|
|
||||||
|
@Data |
||||||
|
public class GoodsUpdateParam { |
||||||
|
private String goods_name; |
||||||
|
|
||||||
|
} |
@ -0,0 +1,20 @@ |
|||||||
|
package com.gitee.sop.bookweb.message; |
||||||
|
|
||||||
|
import com.gitee.sop.servercommon.message.ServiceErrorMeta; |
||||||
|
|
||||||
|
public enum GoodsErrorEnum { |
||||||
|
/** 参数错误 */ |
||||||
|
NO_GOODS_NAME("100"), |
||||||
|
/** 参数长度太短 */ |
||||||
|
LESS_GOODS_NAME_LEN("101"), |
||||||
|
; |
||||||
|
private ServiceErrorMeta errorMeta; |
||||||
|
|
||||||
|
GoodsErrorEnum(String subCode) { |
||||||
|
this.errorMeta = new ServiceErrorMeta("isp.goods_error_", subCode); |
||||||
|
} |
||||||
|
|
||||||
|
public ServiceErrorMeta getErrorMeta() { |
||||||
|
return errorMeta; |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,21 @@ |
|||||||
|
package com.gitee.sop.bookweb.message; |
||||||
|
|
||||||
|
import com.gitee.sop.servercommon.message.ServiceErrorMeta; |
||||||
|
|
||||||
|
/** |
||||||
|
* @author tanghc |
||||||
|
*/ |
||||||
|
public enum StoryErrorEnum { |
||||||
|
/** 参数错误 */ |
||||||
|
param_error("isv.invalid-parameter"), |
||||||
|
; |
||||||
|
private ServiceErrorMeta errorMeta; |
||||||
|
|
||||||
|
StoryErrorEnum(String subCode) { |
||||||
|
this.errorMeta = new ServiceErrorMeta("isp.error_", subCode); |
||||||
|
} |
||||||
|
|
||||||
|
public ServiceErrorMeta getErrorMeta() { |
||||||
|
return errorMeta; |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,9 @@ |
|||||||
|
server: |
||||||
|
port: 2222 |
||||||
|
|
||||||
|
eureka: |
||||||
|
port: 1111 |
||||||
|
host: localhost |
||||||
|
client: |
||||||
|
serviceUrl: |
||||||
|
defaultZone: http://${eureka.host}:${eureka.port}/eureka/ |
@ -0,0 +1,8 @@ |
|||||||
|
spring: |
||||||
|
application: |
||||||
|
name: story-service |
||||||
|
description: story服务 |
||||||
|
|
||||||
|
cloud: |
||||||
|
zookeeper: |
||||||
|
connect-string: localhost:2181 |
@ -0,0 +1,10 @@ |
|||||||
|
# 错误配置 |
||||||
|
|
||||||
|
# 系统配置 |
||||||
|
isp.error_isv.common-error=The system is busy. |
||||||
|
isp.error_isv.invalid-parameter=Invalid parameter, {0} |
||||||
|
|
||||||
|
# ==== 参数配置 ==== |
||||||
|
|
||||||
|
goods.remark.notNull=The goods_remark can not be null |
||||||
|
goods.comment.length=The goods_comment length must >= {0} and <= {1} |
@ -0,0 +1,14 @@ |
|||||||
|
# 错误配置 |
||||||
|
|
||||||
|
# 系统繁忙 |
||||||
|
isp.error_isv.common-error=\u7cfb\u7edf\u7e41\u5fd9 |
||||||
|
# 参数无效 |
||||||
|
isp.error_isv.invalid-parameter=\u53c2\u6570\u65e0\u6548, {0} |
||||||
|
|
||||||
|
# ==== 参数配置 ==== |
||||||
|
|
||||||
|
# 商品备注不能为空 |
||||||
|
goods.remark.notNull=\u5546\u54c1\u5907\u6ce8\u4e0d\u80fd\u4e3a\u7a7a |
||||||
|
# 商品评论长度必须在{0}和{1}之间 |
||||||
|
goods.comment.length=\u5546\u54c1\u8bc4\u8bba\u957f\u5ea6\u5fc5\u987b\u5728{0}\u548c{1}\u4e4b\u95f4 |
||||||
|
|
@ -0,0 +1,2 @@ |
|||||||
|
isp.goods_error_100=the goods_name can NOT be null |
||||||
|
isp.goods_error_101=the goods_name must bigger than {0} |
@ -0,0 +1,5 @@ |
|||||||
|
# 商品名字不能为空 |
||||||
|
isp.goods_error_100=\u5546\u54C1\u540D\u79F0\u4E0D\u80FD\u4E3A\u7A7A |
||||||
|
|
||||||
|
# 商品名称太短,不能小于{0}个字 |
||||||
|
isp.goods_error_101=\u5546\u54C1\u540D\u79F0\u592A\u77ED\uFF0C\u4E0D\u80FD\u5C0F\u4E8E{0}\u4E2A\u5B57 |
@ -0,0 +1,17 @@ |
|||||||
|
package com.gitee.sop.bookweb; |
||||||
|
|
||||||
|
import org.junit.Test; |
||||||
|
import org.junit.runner.RunWith; |
||||||
|
import org.springframework.boot.test.context.SpringBootTest; |
||||||
|
import org.springframework.test.context.junit4.SpringRunner; |
||||||
|
|
||||||
|
@RunWith(SpringRunner.class) |
||||||
|
@SpringBootTest |
||||||
|
public class SopStoryApplicationTests { |
||||||
|
|
||||||
|
@Test |
||||||
|
public void contextLoads() { |
||||||
|
} |
||||||
|
|
||||||
|
} |
||||||
|
|
Loading…
Reference in new issue