commit 9f779fbd6a4a9d66a20bac9c7327160d944fbbe1 Author: qiushijie Date: Tue Jan 30 11:21:46 2024 +0800 init project diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..5ff6309 --- /dev/null +++ b/.gitignore @@ -0,0 +1,38 @@ +target/ +!.mvn/wrapper/maven-wrapper.jar +!**/src/main/**/target/ +!**/src/test/**/target/ + +### IntelliJ IDEA ### +.idea/modules.xml +.idea/jarRepositories.xml +.idea/compiler.xml +.idea/libraries/ +*.iws +*.iml +*.ipr + +### Eclipse ### +.apt_generated +.classpath +.factorypath +.project +.settings +.springBeans +.sts4-cache + +### NetBeans ### +/nbproject/private/ +/nbbuild/ +/dist/ +/nbdist/ +/.nb-gradle/ +build/ +!**/src/main/**/build/ +!**/src/test/**/build/ + +### VS Code ### +.vscode/ + +### Mac OS ### +.DS_Store \ No newline at end of file diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..359bb53 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,3 @@ +# 默认忽略的文件 +/shelf/ +/workspace.xml diff --git a/.idea/encodings.xml b/.idea/encodings.xml new file mode 100644 index 0000000..f08d73d --- /dev/null +++ b/.idea/encodings.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000..7bbc943 --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,16 @@ + + + + + + + + + + \ No newline at end of file diff --git a/.idea/uiDesigner.xml b/.idea/uiDesigner.xml new file mode 100644 index 0000000..2b63946 --- /dev/null +++ b/.idea/uiDesigner.xml @@ -0,0 +1,124 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/pom.xml b/pom.xml new file mode 100644 index 0000000..131d0d1 --- /dev/null +++ b/pom.xml @@ -0,0 +1,131 @@ + + + 4.0.0 + + com.learning + springcloud + 1.0-SNAPSHOT + + + + + + springcloud-api + springcloud-provider-dept-8001 + springcloud-api + springcloud-consumer-dept-80 + + + + pom + + + 2.1.4.RELEASE + Greenwich.SR1 + 4.13 + 1.18.12 + 2.1.3 + 1.1.23 + 42.2.14 + 1.2.17 + + + + + nexus-aliyun + nexus-aliyun + https://maven.aliyun.com/repository/public/ + + true + + + false + + + + spring + https://maven.aliyun.com/repository/spring + + true + + + true + + + + + + + + org.springframework.cloud + spring-cloud-dependencies + ${springcloud.version} + pom + import + + + + org.springframework.boot + spring-boot-dependencies + + ${springboot.version} + pom + import + + + + org.postgresql + postgresql + ${postgresql.version} + + + + com.alibaba + druid + ${druid.version} + + + + org.mybatis.spring.boot + mybatis-spring-boot-starter + ${mybstis.version} + + + + log4j + log4j + ${log4j.version} + + + + junit + junit + ${junit.version} + + + + org.projectlombok + lombok + ${lombok.version} + + + + ch.qos.logback + logback-core + 1.2.3 + + + + + + + + org.springframework.boot + spring-boot-maven-plugin + 3.1.0 + + + + \ No newline at end of file diff --git a/springcloud-api/pom.xml b/springcloud-api/pom.xml new file mode 100644 index 0000000..b715501 --- /dev/null +++ b/springcloud-api/pom.xml @@ -0,0 +1,38 @@ + + 4.0.0 + + com.learning + springcloud + 1.0-SNAPSHOT + + org.learning + springcloud-api + 1.0-SNAPSHOT + jar + springcloud-api + http://maven.apache.org + + + junit + junit + 3.8.1 + test + + + org.projectlombok + lombok + + + + + + org.springframework.boot + spring-boot-maven-plugin + + exec + + + + + diff --git a/springcloud-api/src/main/java/org/learning/springcloud/App.java b/springcloud-api/src/main/java/org/learning/springcloud/App.java new file mode 100644 index 0000000..032ad86 --- /dev/null +++ b/springcloud-api/src/main/java/org/learning/springcloud/App.java @@ -0,0 +1,13 @@ +package org.learning.springcloud; + +/** + * Hello world! + * + */ +public class App +{ + public static void main( String[] args ) + { + System.out.println( "API Hello World!" ); + } +} diff --git a/springcloud-api/src/main/java/org/learning/springcloud/domain/Dept.java b/springcloud-api/src/main/java/org/learning/springcloud/domain/Dept.java new file mode 100644 index 0000000..a7d0d41 --- /dev/null +++ b/springcloud-api/src/main/java/org/learning/springcloud/domain/Dept.java @@ -0,0 +1,17 @@ +package org.learning.springcloud.domain; + +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.Accessors; + +import java.io.Serializable; + +@Data +@NoArgsConstructor +@Accessors(chain = true)//链式写法 +public class Dept implements Serializable{ + private Integer id; + private String name; + private Integer groupId; + +} \ No newline at end of file diff --git a/springcloud-api/src/main/java/org/learning/springcloud/result/Box.java b/springcloud-api/src/main/java/org/learning/springcloud/result/Box.java new file mode 100644 index 0000000..cd1e9d6 --- /dev/null +++ b/springcloud-api/src/main/java/org/learning/springcloud/result/Box.java @@ -0,0 +1,13 @@ +package org.learning.springcloud.result; + +public class Box { + private T data; + + public T getData() { + return data; + } + + public void setData(T data) { + this.data = data; + } + } \ No newline at end of file diff --git a/springcloud-api/src/main/java/org/learning/springcloud/result/ResultForm.java b/springcloud-api/src/main/java/org/learning/springcloud/result/ResultForm.java new file mode 100644 index 0000000..82f8df8 --- /dev/null +++ b/springcloud-api/src/main/java/org/learning/springcloud/result/ResultForm.java @@ -0,0 +1,43 @@ +package org.learning.springcloud.result; + +import lombok.Data; + +import java.io.Serializable; +@Data +public class ResultForm implements Serializable { + + + protected boolean success; + + + protected int code; + + protected String message; + + protected T content; + private long timestamp = System.currentTimeMillis(); + + public ResultForm(boolean success) { + this.success = success; + this.message = ""; + } + + public ResultForm(boolean success, String message) { + this(success); + this.message = message; + } + + public ResultForm(boolean success, int code, String message) { + this(success); + this.code = code; + this.message = message; + } + + public ResultForm() { + } + public ResultForm(boolean success, T content, String message) { + this(success); + this.message = message; + this.content = content; + } +} diff --git a/springcloud-api/src/test/java/org/learning/springcloud/AppTest.java b/springcloud-api/src/test/java/org/learning/springcloud/AppTest.java new file mode 100644 index 0000000..e9b52c9 --- /dev/null +++ b/springcloud-api/src/test/java/org/learning/springcloud/AppTest.java @@ -0,0 +1,38 @@ +package org.learning.springcloud; + +import junit.framework.Test; +import junit.framework.TestCase; +import junit.framework.TestSuite; + +/** + * Unit test for simple App. + */ +public class AppTest + extends TestCase +{ + /** + * Create the test case + * + * @param testName name of the test case + */ + public AppTest( String testName ) + { + super( testName ); + } + + /** + * @return the suite of tests being tested + */ + public static Test suite() + { + return new TestSuite( AppTest.class ); + } + + /** + * Rigourous Test :-) + */ + public void testApp() + { + assertTrue( true ); + } +} diff --git a/springcloud-consumer-dept-80/pom.xml b/springcloud-consumer-dept-80/pom.xml new file mode 100644 index 0000000..6e3d3b5 --- /dev/null +++ b/springcloud-consumer-dept-80/pom.xml @@ -0,0 +1,28 @@ + + 4.0.0 + + com.learning + springcloud + 1.0-SNAPSHOT + + org.learning + springcloud-consumer-dept-80 + jar + springcloud-consumer-dept-80 + http://maven.apache.org + + + + org.learning + springcloud-api + 1.0-SNAPSHOT + + + + org.springframework.boot + spring-boot-starter-web + + + + diff --git a/springcloud-consumer-dept-80/src/main/java/org/learning/springcloud/ConsumerApplication.java b/springcloud-consumer-dept-80/src/main/java/org/learning/springcloud/ConsumerApplication.java new file mode 100644 index 0000000..6fcab49 --- /dev/null +++ b/springcloud-consumer-dept-80/src/main/java/org/learning/springcloud/ConsumerApplication.java @@ -0,0 +1,9 @@ +package org.learning.springcloud; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +@SpringBootApplication +public class ConsumerApplication { + public static void main(String[] args) { + SpringApplication.run(ConsumerApplication.class,args); + } +} \ No newline at end of file diff --git a/springcloud-consumer-dept-80/src/main/java/org/learning/springcloud/config/BeanConfig.java b/springcloud-consumer-dept-80/src/main/java/org/learning/springcloud/config/BeanConfig.java new file mode 100644 index 0000000..1cdfc22 --- /dev/null +++ b/springcloud-consumer-dept-80/src/main/java/org/learning/springcloud/config/BeanConfig.java @@ -0,0 +1,12 @@ +package org.learning.springcloud.config; + +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.web.client.RestTemplate; +@Configuration +public class BeanConfig {//@Configuration ==>spring applicationContext.xml + @Bean + public RestTemplate addRestTemplate(){ + return new RestTemplate(); + } +} diff --git a/springcloud-consumer-dept-80/src/main/java/org/learning/springcloud/controller/DeptConsumerController.java b/springcloud-consumer-dept-80/src/main/java/org/learning/springcloud/controller/DeptConsumerController.java new file mode 100644 index 0000000..bec8b62 --- /dev/null +++ b/springcloud-consumer-dept-80/src/main/java/org/learning/springcloud/controller/DeptConsumerController.java @@ -0,0 +1,31 @@ +package org.learning.springcloud.controller; +import org.learning.springcloud.domain.Dept; +import org.learning.springcloud.result.ResultForm; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.client.RestTemplate; + +import java.util.List; +@RestController +public class DeptConsumerController { + // 消费者,不应该有service层 + // RestTemplate 提供多种便捷访问远程http服务的方法,简单的Restful服务模版 + // 使用http请求,调用服务,将Resttemplate注册到spring中 + @Autowired + private RestTemplate restTemplate; + + private static final String REST_URL_PREFIX = "http://localhost:8001"; + + @RequestMapping("/consumer/dept/get/{id}") + public Dept get(@PathVariable("id") Long id){ + return restTemplate.getForObject(REST_URL_PREFIX+"/dept/get/"+id, Dept.class); + } + + @RequestMapping("/consumer/dept/findAll") + public List findAll(){ + return restTemplate.getForObject(REST_URL_PREFIX+"/dept/findAll",List.class); + } +} \ No newline at end of file diff --git a/springcloud-consumer-dept-80/src/main/resources/application.yml b/springcloud-consumer-dept-80/src/main/resources/application.yml new file mode 100644 index 0000000..226708a --- /dev/null +++ b/springcloud-consumer-dept-80/src/main/resources/application.yml @@ -0,0 +1,2 @@ +server: + port: 80 \ No newline at end of file diff --git a/springcloud-consumer-dept-80/src/test/java/org/learning/springcloud/AppTest.java b/springcloud-consumer-dept-80/src/test/java/org/learning/springcloud/AppTest.java new file mode 100644 index 0000000..e9b52c9 --- /dev/null +++ b/springcloud-consumer-dept-80/src/test/java/org/learning/springcloud/AppTest.java @@ -0,0 +1,38 @@ +package org.learning.springcloud; + +import junit.framework.Test; +import junit.framework.TestCase; +import junit.framework.TestSuite; + +/** + * Unit test for simple App. + */ +public class AppTest + extends TestCase +{ + /** + * Create the test case + * + * @param testName name of the test case + */ + public AppTest( String testName ) + { + super( testName ); + } + + /** + * @return the suite of tests being tested + */ + public static Test suite() + { + return new TestSuite( AppTest.class ); + } + + /** + * Rigourous Test :-) + */ + public void testApp() + { + assertTrue( true ); + } +} diff --git a/springcloud-provider-dept-8001/pom.xml b/springcloud-provider-dept-8001/pom.xml new file mode 100644 index 0000000..5bc2dee --- /dev/null +++ b/springcloud-provider-dept-8001/pom.xml @@ -0,0 +1,73 @@ + + 4.0.0 + + com.learning + springcloud + 1.0-SNAPSHOT + + + org.learning + springcloud-provider-dept-8001 + jar + + springcloud-provider-dept-8001 + http://maven.apache.org + + + UTF-8 + + + + + + junit + junit + + + + org.postgresql + postgresql + + + com.alibaba + druid + + + org.projectlombok + lombok + + + org.mybatis.spring.boot + mybatis-spring-boot-starter + + + + org.springframework.boot + spring-boot-test + + + + org.springframework.boot + spring-boot-starter-web + + + + org.springframework.boot + spring-boot-devtools + + + + com.github.pagehelper + pagehelper-spring-boot-starter + 2.1.0 + + + + org.learning + springcloud-api + 1.0-SNAPSHOT + + + + diff --git a/springcloud-provider-dept-8001/src/main/java/org/learning/springcloud/DeptApplication.java b/springcloud-provider-dept-8001/src/main/java/org/learning/springcloud/DeptApplication.java new file mode 100644 index 0000000..ad7e388 --- /dev/null +++ b/springcloud-provider-dept-8001/src/main/java/org/learning/springcloud/DeptApplication.java @@ -0,0 +1,15 @@ +package org.learning.springcloud; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; + +/** + * Hello world! + * + */ +@SpringBootApplication +public class DeptApplication { + public static void main(String[] args) { + SpringApplication.run(DeptApplication.class, args); + } +} \ No newline at end of file diff --git a/springcloud-provider-dept-8001/src/main/java/org/learning/springcloud/controller/DeptController.java b/springcloud-provider-dept-8001/src/main/java/org/learning/springcloud/controller/DeptController.java new file mode 100644 index 0000000..36889b5 --- /dev/null +++ b/springcloud-provider-dept-8001/src/main/java/org/learning/springcloud/controller/DeptController.java @@ -0,0 +1,44 @@ +package org.learning.springcloud.controller; + +import org.learning.springcloud.domain.Dept; +import org.learning.springcloud.result.ResultForm; +import org.learning.springcloud.service.DeptService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.util.StringUtils; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; + +@RestController +@RequestMapping("/dept") +public class DeptController { + + @Autowired + public DeptService deptService; + + @GetMapping("/get/{id}") + public Dept getDeptById(@PathVariable("id") Integer id){ + +// ResultForm resultForm = new ResultForm(); +// if(id == null){ +// resultForm.setSuccess(false); +// resultForm.setMessage("Id不能为空!"); +// } + return deptService.getDeptById(id); +// if(dept == null){ +// resultForm.setSuccess(false); +// resultForm.setMessage("没有找到id为:"+id+"的部门!"); +// }else{ +// resultForm.setSuccess(true); +// resultForm.setContent(dept); +// } +// return resultForm; + } + @GetMapping("/findAll") + public List findAll(){ + return deptService.findAll(); + } +} diff --git a/springcloud-provider-dept-8001/src/main/java/org/learning/springcloud/mapper/DeptMapper.java b/springcloud-provider-dept-8001/src/main/java/org/learning/springcloud/mapper/DeptMapper.java new file mode 100644 index 0000000..225c4a7 --- /dev/null +++ b/springcloud-provider-dept-8001/src/main/java/org/learning/springcloud/mapper/DeptMapper.java @@ -0,0 +1,14 @@ +package org.learning.springcloud.mapper; + +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import org.learning.springcloud.domain.Dept; + +import java.util.List; + +@Mapper +public interface DeptMapper { + Dept getDeptById(@Param("id") Integer id); + + List findAll(); +} diff --git a/springcloud-provider-dept-8001/src/main/java/org/learning/springcloud/service/DeptService.java b/springcloud-provider-dept-8001/src/main/java/org/learning/springcloud/service/DeptService.java new file mode 100644 index 0000000..77ef78a --- /dev/null +++ b/springcloud-provider-dept-8001/src/main/java/org/learning/springcloud/service/DeptService.java @@ -0,0 +1,11 @@ +package org.learning.springcloud.service; + +import org.learning.springcloud.domain.Dept; + +import java.util.List; + +public interface DeptService { + Dept getDeptById(Integer id); + + List findAll(); +} diff --git a/springcloud-provider-dept-8001/src/main/java/org/learning/springcloud/service/impl/DeptServiceImpl.java b/springcloud-provider-dept-8001/src/main/java/org/learning/springcloud/service/impl/DeptServiceImpl.java new file mode 100644 index 0000000..3eb3f81 --- /dev/null +++ b/springcloud-provider-dept-8001/src/main/java/org/learning/springcloud/service/impl/DeptServiceImpl.java @@ -0,0 +1,25 @@ +package org.learning.springcloud.service.impl; + +import org.learning.springcloud.domain.Dept; +import org.learning.springcloud.service.DeptService; +import org.learning.springcloud.mapper.DeptMapper; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +@Service +public class DeptServiceImpl implements DeptService { + @Autowired + public DeptMapper deptMapper; + @Override + public Dept getDeptById(Integer id) { + + return deptMapper.getDeptById(id); + } + + @Override + public List findAll() { + return deptMapper.findAll(); + } +} diff --git a/springcloud-provider-dept-8001/src/main/resources/application.yml b/springcloud-provider-dept-8001/src/main/resources/application.yml new file mode 100644 index 0000000..a899ee7 --- /dev/null +++ b/springcloud-provider-dept-8001/src/main/resources/application.yml @@ -0,0 +1,14 @@ +server: + port: 8001 +mybatis: + config-location: classpath:mybatis/mybatis-config.xml + type-aliases-package: com.learning.springcloud.domian +spring: + datasource: + type: com.alibaba.druid.pool.DruidDataSource + driver-class-name: org.postgresql.Driver + url: jdbc:postgresql://localhost:5432/postgres + username: postgres + password: 123 + application: + name: springcloud-provider-dept \ No newline at end of file diff --git a/springcloud-provider-dept-8001/src/main/resources/mapper/DeptMapper.xml b/springcloud-provider-dept-8001/src/main/resources/mapper/DeptMapper.xml new file mode 100644 index 0000000..dc91b9c --- /dev/null +++ b/springcloud-provider-dept-8001/src/main/resources/mapper/DeptMapper.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/springcloud-provider-dept-8001/src/main/resources/mybatis/mybatis-config.xml b/springcloud-provider-dept-8001/src/main/resources/mybatis/mybatis-config.xml new file mode 100644 index 0000000..8d04583 --- /dev/null +++ b/springcloud-provider-dept-8001/src/main/resources/mybatis/mybatis-config.xml @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/springcloud-provider-dept-8001/src/test/java/org/learning/springcloud/AppTest.java b/springcloud-provider-dept-8001/src/test/java/org/learning/springcloud/AppTest.java new file mode 100644 index 0000000..e9b52c9 --- /dev/null +++ b/springcloud-provider-dept-8001/src/test/java/org/learning/springcloud/AppTest.java @@ -0,0 +1,38 @@ +package org.learning.springcloud; + +import junit.framework.Test; +import junit.framework.TestCase; +import junit.framework.TestSuite; + +/** + * Unit test for simple App. + */ +public class AppTest + extends TestCase +{ + /** + * Create the test case + * + * @param testName name of the test case + */ + public AppTest( String testName ) + { + super( testName ); + } + + /** + * @return the suite of tests being tested + */ + public static Test suite() + { + return new TestSuite( AppTest.class ); + } + + /** + * Rigourous Test :-) + */ + public void testApp() + { + assertTrue( true ); + } +}