From 45bcd495651a274e3e7477303936449de2dcea21 Mon Sep 17 00:00:00 2001 From: "Yangkai.Shen" <237497819@qq.com> Date: Mon, 26 Oct 2020 22:12:00 +0800 Subject: [PATCH] =?UTF-8?q?:art:=20=E8=A7=84=E8=8C=83=E4=BB=A3=E7=A0=81?= =?UTF-8?q?=E6=A0=BC=E5=BC=8F=E5=8C=96=E9=A3=8E=E6=A0=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../config/SecurityConfiguration.java | 5 +- .../SpringBootDemoActuatorApplication.java | 6 +- ...pringBootDemoActuatorApplicationTests.java | 6 +- .../SpringBootDemoAdminClientApplication.java | 6 +- .../client/controller/IndexController.java | 8 +- ...ngBootDemoAdminClientApplicationTests.java | 6 +- .../SpringBootDemoAdminServerApplication.java | 6 +- ...ngBootDemoAdminServerApplicationTests.java | 6 +- .../xkcoding/codegen/utils/CodeGenUtil.java | 4 +- .../datasource/DatasourceHolder.java | 1 + .../datasource/DatasourceScheduler.java | 2 +- .../datasource/DynamicDataSource.java | 1 + .../xkcoding/elasticsearch/common/Result.java | 6 +- .../elasticsearch/service/PersonService.java | 16 +- .../service/impl/PersonServiceImpl.java | 2 +- ...BootDemoElasticsearchApplicationTests.java | 6 +- .../repository/PersonRepositoryTest.java | 7 +- .../SpringBootDemoEmailApplicationTests.java | 6 +- ...ngBootDemoExceptionHandlerApplication.java | 6 +- .../exception/handler/constant/Status.java | 40 +- .../handler/controller/TestController.java | 18 +- .../handler/exception/BaseException.java | 24 +- .../handler/exception/JsonException.java | 12 +- .../handler/exception/PageException.java | 12 +- .../handler/handler/DemoExceptionHandler.java | 54 +-- .../exception/handler/model/ApiResponse.java | 196 ++++----- ...tDemoExceptionHandlerApplicationTests.java | 6 +- .../src/test/java/com/xkcoding/AppTest.java | 12 +- .../SpringBootDemoHelloworldApplication.java | 32 +- ...ingBootDemoHelloworldApplicationTests.java | 6 +- .../src/main/resources/static/index.html | 2 +- .../java/com/xkcoding/ldap/api/Result.java | 6 +- .../java/com/xkcoding/ldap/entity/Person.java | 5 +- .../aop/SpringBootDemoLogAopApplication.java | 6 +- .../com/xkcoding/log/aop/aspectj/AopLog.java | 102 ++--- .../log/aop/controller/TestController.java | 20 +- .../SpringBootDemoLogAopApplicationTests.java | 6 +- .../SpringBootDemoLogbackApplication.java | 30 +- ...SpringBootDemoLogbackApplicationTests.java | 6 +- .../repository/ArticleRepositoryTest.java | 19 +- ...ingBootDemoMqRabbitmqApplicationTests.java | 9 +- .../jpa/config/PrimaryJpaConfig.java | 28 +- .../jpa/config/SecondJpaConfig.java | 28 +- .../jpa/config/SnowflakeConfig.java | 4 +- ...emoMultiDatasourceJpaApplicationTests.java | 4 +- .../xkcoding/neo4j/service/NeoService.java | 15 +- .../java/com/xkcoding/neo4j/Neo4jTest.java | 8 +- .../config/ClientLoginFailureHandler.java | 6 +- .../Oauth2AuthorizationServerConfig.java | 5 +- .../oauth/config/WebSecurityConfig.java | 15 +- .../xkcoding/oauth/config/package-info.java | 5 +- .../oauth/controller/Oauth2Controller.java | 5 +- .../oauth/controller/package-info.java | 2 +- .../com/xkcoding/oauth/entity/SysUser.java | 5 +- .../impl/SysClientDetailsServiceImpl.java | 17 +- .../service/impl/SysUserServiceImpl.java | 10 +- .../oauth/AuthorizationCodeGrantTests.java | 12 +- .../oauth/oauth/AuthorizationServerInfo.java | 6 +- .../ResourceOwnerPasswordGrantTests.java | 2 +- .../SpringBootDemoResourceApplication.java | 2 +- .../config/OauthResourceServerConfig.java | 4 +- .../config/OauthResourceTokenConfig.java | 10 +- .../com/xkcoding/oauth/AuthorizationTest.java | 3 +- .../oauth/controller/TestControllerTest.java | 12 +- .../orm/beetlsql/config/BeetlConfig.java | 2 +- ...ingBootDemoOrmJdbctemplateApplication.java | 6 +- .../orm/jdbctemplate/annotation/Column.java | 12 +- .../orm/jdbctemplate/annotation/Pk.java | 12 +- .../orm/jdbctemplate/annotation/Table.java | 12 +- .../orm/jdbctemplate/constant/Const.java | 16 +- .../controller/UserController.java | 72 ++-- .../orm/jdbctemplate/dao/UserDao.java | 100 ++--- .../orm/jdbctemplate/dao/base/BaseDao.java | 392 +++++++++--------- .../orm/jdbctemplate/entity/User.java | 92 ++-- .../jdbctemplate/service/IUserService.java | 80 ++-- .../service/impl/UserServiceImpl.java | 142 +++---- .../jpa/SpringBootDemoOrmJpaApplication.java | 6 +- .../MapperAndPage/mapper/UserMapperTest.java | 2 +- .../plus/config/MybatisPlusConfig.java | 2 +- ...ootDemoOrmMybatisPlusApplicationTests.java | 6 +- .../SpringBootDemoPropertiesApplication.java | 6 +- .../controller/PropertyController.java | 22 +- .../property/ApplicationProperty.java | 8 +- .../property/DeveloperProperty.java | 8 +- ...ingBootDemoPropertiesApplicationTests.java | 6 +- .../redis/aspect/RateLimiterAspect.java | 2 +- .../rbac/security/common/BaseException.java | 42 +- .../xkcoding/rbac/security/common/Status.java | 3 +- .../config/JwtAuthenticationFilter.java | 30 +- .../security/config/RbacAuthorityService.java | 28 +- .../rbac/security/config/WebMvcConfig.java | 5 +- .../security/controller/AuthController.java | 5 +- .../controller/MonitorController.java | 2 +- .../handler/GlobalExceptionHandler.java | 8 +- .../service/CustomUserDetailsService.java | 7 +- .../rbac/security/service/MonitorService.java | 21 +- .../xkcoding/rbac/security/util/JwtUtil.java | 19 +- .../rbac/security/util/RedisUtil.java | 4 +- .../rbac/security/util/ResponseUtil.java | 6 +- .../rbac/security/util/SecurityUtil.java | 4 +- .../rbac/security/vo/UserPrincipal.java | 11 +- .../security/repository/DataInitTest.java | 3 +- .../swagger/config/Swagger2Config.java | 12 +- .../swagger/controller/UserController.java | 10 +- ...pringBootDemoTemplateBeetlApplication.java | 6 +- .../beetl/controller/IndexController.java | 24 +- .../beetl/controller/UserController.java | 24 +- .../xkcoding/template/beetl/model/User.java | 4 +- ...BootDemoTemplateBeetlApplicationTests.java | 6 +- ...pringBootDemoTemplateEnjoyApplication.java | 6 +- .../template/enjoy/config/EnjoyConfig.java | 32 +- .../enjoy/controller/IndexController.java | 24 +- .../enjoy/controller/UserController.java | 24 +- .../xkcoding/template/enjoy/model/User.java | 4 +- ...BootDemoTemplateEnjoyApplicationTests.java | 6 +- ...BootDemoTemplateFreemarkerApplication.java | 6 +- .../controller/IndexController.java | 24 +- .../freemarker/controller/UserController.java | 24 +- .../template/freemarker/model/User.java | 4 +- ...emoTemplateFreemarkerApplicationTests.java | 6 +- ...gBootDemoTemplateThymeleafApplication.java | 6 +- .../thymeleaf/controller/IndexController.java | 24 +- .../thymeleaf/controller/UserController.java | 24 +- .../template/thymeleaf/model/User.java | 4 +- ...DemoTemplateThymeleafApplicationTests.java | 6 +- .../xkcoding/upload/config/UploadConfig.java | 110 ++--- .../upload/controller/UploadController.java | 112 ++--- .../upload/service/IQiNiuService.java | 16 +- .../upload/service/impl/QiNiuServiceImpl.java | 80 ++-- .../SpringBootDemoUploadApplicationTests.java | 6 +- .../SpringBootDemoWarApplicationTests.java | 6 +- .../websocket/socketio/config/Event.java | 8 +- .../socketio/handler/MessageEventHandler.java | 4 +- .../websocket/config/WebSocketConfig.java | 5 +- .../xkcoding/websocket/model/server/Cpu.java | 15 +- .../xkcoding/websocket/model/server/Jvm.java | 9 +- .../xkcoding/websocket/util/ServerUtil.java | 7 +- 137 files changed, 1329 insertions(+), 1500 deletions(-) diff --git a/demo-activiti/src/main/java/com/xkcoding/activiti/config/SecurityConfiguration.java b/demo-activiti/src/main/java/com/xkcoding/activiti/config/SecurityConfiguration.java index 0f9275a..5f46a2a 100644 --- a/demo-activiti/src/main/java/com/xkcoding/activiti/config/SecurityConfiguration.java +++ b/demo-activiti/src/main/java/com/xkcoding/activiti/config/SecurityConfiguration.java @@ -42,10 +42,7 @@ public class SecurityConfiguration extends WebSecurityConfigurerAdapter { for (String[] user : usersGroupsAndRoles) { List authoritiesStrings = Arrays.asList(Arrays.copyOfRange(user, 2, user.length)); log.info("> Registering new user: " + user[0] + " with the following Authorities[" + authoritiesStrings + "]"); - inMemoryUserDetailsManager.createUser(new User(user[0], passwordEncoder().encode(user[1]), authoritiesStrings - .stream() - .map(SimpleGrantedAuthority::new) - .collect(Collectors.toList()))); + inMemoryUserDetailsManager.createUser(new User(user[0], passwordEncoder().encode(user[1]), authoritiesStrings.stream().map(SimpleGrantedAuthority::new).collect(Collectors.toList()))); } diff --git a/demo-actuator/src/main/java/com/xkcoding/actuator/SpringBootDemoActuatorApplication.java b/demo-actuator/src/main/java/com/xkcoding/actuator/SpringBootDemoActuatorApplication.java index 7e8b28d..4630c8f 100644 --- a/demo-actuator/src/main/java/com/xkcoding/actuator/SpringBootDemoActuatorApplication.java +++ b/demo-actuator/src/main/java/com/xkcoding/actuator/SpringBootDemoActuatorApplication.java @@ -14,7 +14,7 @@ import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class SpringBootDemoActuatorApplication { - public static void main(String[] args) { - SpringApplication.run(SpringBootDemoActuatorApplication.class, args); - } + public static void main(String[] args) { + SpringApplication.run(SpringBootDemoActuatorApplication.class, args); + } } diff --git a/demo-actuator/src/test/java/com/xkcoding/actuator/SpringBootDemoActuatorApplicationTests.java b/demo-actuator/src/test/java/com/xkcoding/actuator/SpringBootDemoActuatorApplicationTests.java index 4416b96..ac2d387 100644 --- a/demo-actuator/src/test/java/com/xkcoding/actuator/SpringBootDemoActuatorApplicationTests.java +++ b/demo-actuator/src/test/java/com/xkcoding/actuator/SpringBootDemoActuatorApplicationTests.java @@ -9,8 +9,8 @@ import org.springframework.test.context.junit4.SpringRunner; @SpringBootTest public class SpringBootDemoActuatorApplicationTests { - @Test - public void contextLoads() { - } + @Test + public void contextLoads() { + } } diff --git a/demo-admin/admin-client/src/main/java/com/xkcoding/admin/client/SpringBootDemoAdminClientApplication.java b/demo-admin/admin-client/src/main/java/com/xkcoding/admin/client/SpringBootDemoAdminClientApplication.java index 1d38979..755bb81 100644 --- a/demo-admin/admin-client/src/main/java/com/xkcoding/admin/client/SpringBootDemoAdminClientApplication.java +++ b/demo-admin/admin-client/src/main/java/com/xkcoding/admin/client/SpringBootDemoAdminClientApplication.java @@ -14,7 +14,7 @@ import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class SpringBootDemoAdminClientApplication { - public static void main(String[] args) { - SpringApplication.run(SpringBootDemoAdminClientApplication.class, args); - } + public static void main(String[] args) { + SpringApplication.run(SpringBootDemoAdminClientApplication.class, args); + } } diff --git a/demo-admin/admin-client/src/main/java/com/xkcoding/admin/client/controller/IndexController.java b/demo-admin/admin-client/src/main/java/com/xkcoding/admin/client/controller/IndexController.java index c835083..98f68ac 100644 --- a/demo-admin/admin-client/src/main/java/com/xkcoding/admin/client/controller/IndexController.java +++ b/demo-admin/admin-client/src/main/java/com/xkcoding/admin/client/controller/IndexController.java @@ -13,8 +13,8 @@ import org.springframework.web.bind.annotation.RestController; */ @RestController public class IndexController { - @GetMapping(value = {"", "/"}) - public String index() { - return "This is a Spring Boot Admin Client."; - } + @GetMapping(value = {"", "/"}) + public String index() { + return "This is a Spring Boot Admin Client."; + } } diff --git a/demo-admin/admin-client/src/test/java/com/xkcoding/admin/client/SpringBootDemoAdminClientApplicationTests.java b/demo-admin/admin-client/src/test/java/com/xkcoding/admin/client/SpringBootDemoAdminClientApplicationTests.java index 41b8cf8..283f40a 100644 --- a/demo-admin/admin-client/src/test/java/com/xkcoding/admin/client/SpringBootDemoAdminClientApplicationTests.java +++ b/demo-admin/admin-client/src/test/java/com/xkcoding/admin/client/SpringBootDemoAdminClientApplicationTests.java @@ -9,8 +9,8 @@ import org.springframework.test.context.junit4.SpringRunner; @SpringBootTest public class SpringBootDemoAdminClientApplicationTests { - @Test - public void contextLoads() { - } + @Test + public void contextLoads() { + } } diff --git a/demo-admin/admin-server/src/main/java/com/xkcoding/admin/server/SpringBootDemoAdminServerApplication.java b/demo-admin/admin-server/src/main/java/com/xkcoding/admin/server/SpringBootDemoAdminServerApplication.java index 110b240..5bf7bad 100644 --- a/demo-admin/admin-server/src/main/java/com/xkcoding/admin/server/SpringBootDemoAdminServerApplication.java +++ b/demo-admin/admin-server/src/main/java/com/xkcoding/admin/server/SpringBootDemoAdminServerApplication.java @@ -16,7 +16,7 @@ import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class SpringBootDemoAdminServerApplication { - public static void main(String[] args) { - SpringApplication.run(SpringBootDemoAdminServerApplication.class, args); - } + public static void main(String[] args) { + SpringApplication.run(SpringBootDemoAdminServerApplication.class, args); + } } diff --git a/demo-admin/admin-server/src/test/java/com/xkcoding/admin/server/SpringBootDemoAdminServerApplicationTests.java b/demo-admin/admin-server/src/test/java/com/xkcoding/admin/server/SpringBootDemoAdminServerApplicationTests.java index b3df7ee..d70d4f8 100644 --- a/demo-admin/admin-server/src/test/java/com/xkcoding/admin/server/SpringBootDemoAdminServerApplicationTests.java +++ b/demo-admin/admin-server/src/test/java/com/xkcoding/admin/server/SpringBootDemoAdminServerApplicationTests.java @@ -9,8 +9,8 @@ import org.springframework.test.context.junit4.SpringRunner; @SpringBootTest public class SpringBootDemoAdminServerApplicationTests { - @Test - public void contextLoads() { - } + @Test + public void contextLoads() { + } } diff --git a/demo-codegen/src/main/java/com/xkcoding/codegen/utils/CodeGenUtil.java b/demo-codegen/src/main/java/com/xkcoding/codegen/utils/CodeGenUtil.java index 248747e..ace9a53 100644 --- a/demo-codegen/src/main/java/com/xkcoding/codegen/utils/CodeGenUtil.java +++ b/demo-codegen/src/main/java/com/xkcoding/codegen/utils/CodeGenUtil.java @@ -179,9 +179,7 @@ public class CodeGenUtil { try { //添加到zip - zip.putNextEntry(new ZipEntry(Objects.requireNonNull(getFileName(template, tableEntity.getCaseClassName(), map - .get("package") - .toString(), map.get("moduleName").toString())))); + zip.putNextEntry(new ZipEntry(Objects.requireNonNull(getFileName(template, tableEntity.getCaseClassName(), map.get("package").toString(), map.get("moduleName").toString())))); IoUtil.write(zip, StandardCharsets.UTF_8, false, sw.toString()); IoUtil.close(sw); zip.closeEntry(); diff --git a/demo-dynamic-datasource/src/main/java/com/xkcoding/dynamic/datasource/datasource/DatasourceHolder.java b/demo-dynamic-datasource/src/main/java/com/xkcoding/dynamic/datasource/datasource/DatasourceHolder.java index dc873a5..7685a4f 100644 --- a/demo-dynamic-datasource/src/main/java/com/xkcoding/dynamic/datasource/datasource/DatasourceHolder.java +++ b/demo-dynamic-datasource/src/main/java/com/xkcoding/dynamic/datasource/datasource/DatasourceHolder.java @@ -78,6 +78,7 @@ public enum DatasourceHolder { /** * 清除动态数据源 + * * @param id 数据源id */ public synchronized void removeDatasource(Long id) { diff --git a/demo-dynamic-datasource/src/main/java/com/xkcoding/dynamic/datasource/datasource/DatasourceScheduler.java b/demo-dynamic-datasource/src/main/java/com/xkcoding/dynamic/datasource/datasource/DatasourceScheduler.java index e8ed62f..3832f1a 100644 --- a/demo-dynamic-datasource/src/main/java/com/xkcoding/dynamic/datasource/datasource/DatasourceScheduler.java +++ b/demo-dynamic-datasource/src/main/java/com/xkcoding/dynamic/datasource/datasource/DatasourceScheduler.java @@ -37,7 +37,7 @@ public enum DatasourceScheduler { } } - public void schedule(Runnable task,long delay){ + public void schedule(Runnable task, long delay) { this.scheduler.scheduleAtFixedRate(task, delay, delay, TimeUnit.MILLISECONDS); } diff --git a/demo-dynamic-datasource/src/main/java/com/xkcoding/dynamic/datasource/datasource/DynamicDataSource.java b/demo-dynamic-datasource/src/main/java/com/xkcoding/dynamic/datasource/datasource/DynamicDataSource.java index f91c563..4a85229 100644 --- a/demo-dynamic-datasource/src/main/java/com/xkcoding/dynamic/datasource/datasource/DynamicDataSource.java +++ b/demo-dynamic-datasource/src/main/java/com/xkcoding/dynamic/datasource/datasource/DynamicDataSource.java @@ -35,6 +35,7 @@ public class DynamicDataSource extends HikariDataSource { /** * 初始化数据源 + * * @param id 数据源id * @return 数据源 */ diff --git a/demo-elasticsearch-rest-high-level-client/src/main/java/com/xkcoding/elasticsearch/common/Result.java b/demo-elasticsearch-rest-high-level-client/src/main/java/com/xkcoding/elasticsearch/common/Result.java index e9a0732..b0b1225 100644 --- a/demo-elasticsearch-rest-high-level-client/src/main/java/com/xkcoding/elasticsearch/common/Result.java +++ b/demo-elasticsearch-rest-high-level-client/src/main/java/com/xkcoding/elasticsearch/common/Result.java @@ -54,7 +54,6 @@ public class Result implements Serializable { } - /** * 返回成功 * @@ -70,7 +69,7 @@ public class Result implements Serializable { * 返回成功-携带数据 * * @param data 响应数据 - * @param 泛型标记 + * @param 泛型标记 * @return 响应信息 {@code Result} */ public static Result success(@Nullable T data) { @@ -78,7 +77,4 @@ public class Result implements Serializable { } - - - } diff --git a/demo-elasticsearch-rest-high-level-client/src/main/java/com/xkcoding/elasticsearch/service/PersonService.java b/demo-elasticsearch-rest-high-level-client/src/main/java/com/xkcoding/elasticsearch/service/PersonService.java index d37bd14..c35a351 100644 --- a/demo-elasticsearch-rest-high-level-client/src/main/java/com/xkcoding/elasticsearch/service/PersonService.java +++ b/demo-elasticsearch-rest-high-level-client/src/main/java/com/xkcoding/elasticsearch/service/PersonService.java @@ -17,51 +17,51 @@ public interface PersonService { /** * create Index * - * @author fxbin * @param index elasticsearch index name + * @author fxbin */ void createIndex(String index); /** * delete Index * - * @author fxbin * @param index elasticsearch index name + * @author fxbin */ void deleteIndex(String index); /** * insert document source * - * @author fxbin * @param index elasticsearch index name - * @param list data source + * @param list data source + * @author fxbin */ void insert(String index, List list); /** * update document source * - * @author fxbin * @param index elasticsearch index name - * @param list data source + * @param list data source + * @author fxbin */ void update(String index, List list); /** * delete document source * - * @author fxbin * @param person delete data source and allow null object + * @author fxbin */ void delete(String index, @Nullable Person person); /** * search all doc records * - * @author fxbin * @param index elasticsearch index name * @return person list + * @author fxbin */ List searchList(String index); diff --git a/demo-elasticsearch-rest-high-level-client/src/main/java/com/xkcoding/elasticsearch/service/impl/PersonServiceImpl.java b/demo-elasticsearch-rest-high-level-client/src/main/java/com/xkcoding/elasticsearch/service/impl/PersonServiceImpl.java index f5d77b0..ecbc522 100644 --- a/demo-elasticsearch-rest-high-level-client/src/main/java/com/xkcoding/elasticsearch/service/impl/PersonServiceImpl.java +++ b/demo-elasticsearch-rest-high-level-client/src/main/java/com/xkcoding/elasticsearch/service/impl/PersonServiceImpl.java @@ -2,8 +2,8 @@ package com.xkcoding.elasticsearch.service.impl; import cn.hutool.core.bean.BeanUtil; import com.xkcoding.elasticsearch.model.Person; -import com.xkcoding.elasticsearch.service.base.BaseElasticsearchService; import com.xkcoding.elasticsearch.service.PersonService; +import com.xkcoding.elasticsearch.service.base.BaseElasticsearchService; import org.elasticsearch.action.index.IndexRequest; import org.elasticsearch.action.search.SearchResponse; import org.elasticsearch.search.SearchHit; diff --git a/demo-elasticsearch/src/test/java/com/xkcoding/elasticsearch/SpringBootDemoElasticsearchApplicationTests.java b/demo-elasticsearch/src/test/java/com/xkcoding/elasticsearch/SpringBootDemoElasticsearchApplicationTests.java index 32b3f7e..e25bc50 100644 --- a/demo-elasticsearch/src/test/java/com/xkcoding/elasticsearch/SpringBootDemoElasticsearchApplicationTests.java +++ b/demo-elasticsearch/src/test/java/com/xkcoding/elasticsearch/SpringBootDemoElasticsearchApplicationTests.java @@ -9,8 +9,8 @@ import org.springframework.test.context.junit4.SpringRunner; @SpringBootTest public class SpringBootDemoElasticsearchApplicationTests { - @Test - public void contextLoads() { - } + @Test + public void contextLoads() { + } } diff --git a/demo-elasticsearch/src/test/java/com/xkcoding/elasticsearch/repository/PersonRepositoryTest.java b/demo-elasticsearch/src/test/java/com/xkcoding/elasticsearch/repository/PersonRepositoryTest.java index 6a83ca4..c3b22c4 100644 --- a/demo-elasticsearch/src/test/java/com/xkcoding/elasticsearch/repository/PersonRepositoryTest.java +++ b/demo-elasticsearch/src/test/java/com/xkcoding/elasticsearch/repository/PersonRepositoryTest.java @@ -92,8 +92,7 @@ public class PersonRepositoryTest extends SpringBootDemoElasticsearchApplication */ @Test public void select() { - repo.findAll(Sort.by(Sort.Direction.DESC, "birthday")) - .forEach(person -> log.info("{} 生日: {}", person.getName(), DateUtil.formatDateTime(person.getBirthday()))); + repo.findAll(Sort.by(Sort.Direction.DESC, "birthday")).forEach(person -> log.info("{} 生日: {}", person.getName(), DateUtil.formatDateTime(person.getBirthday()))); } /** @@ -167,8 +166,8 @@ public class PersonRepositoryTest extends SpringBootDemoElasticsearchApplication // 1. 添加一个新的聚合,聚合类型为terms,聚合名称为country,聚合字段为age queryBuilder.addAggregation(AggregationBuilders.terms("country").field("country") - // 2. 在国家聚合桶内进行嵌套聚合,求平均年龄 - .subAggregation(AggregationBuilders.avg("avg").field("age"))); + // 2. 在国家聚合桶内进行嵌套聚合,求平均年龄 + .subAggregation(AggregationBuilders.avg("avg").field("age"))); log.info("【queryBuilder】= {}", JSONUtil.toJsonStr(queryBuilder.build())); diff --git a/demo-email/src/test/java/com/xkcoding/email/SpringBootDemoEmailApplicationTests.java b/demo-email/src/test/java/com/xkcoding/email/SpringBootDemoEmailApplicationTests.java index c068893..2b74a39 100644 --- a/demo-email/src/test/java/com/xkcoding/email/SpringBootDemoEmailApplicationTests.java +++ b/demo-email/src/test/java/com/xkcoding/email/SpringBootDemoEmailApplicationTests.java @@ -9,8 +9,8 @@ import org.springframework.test.context.junit4.SpringRunner; @SpringBootTest public class SpringBootDemoEmailApplicationTests { - @Test - public void contextLoads() { - } + @Test + public void contextLoads() { + } } diff --git a/demo-exception-handler/src/main/java/com/xkcoding/exception/handler/SpringBootDemoExceptionHandlerApplication.java b/demo-exception-handler/src/main/java/com/xkcoding/exception/handler/SpringBootDemoExceptionHandlerApplication.java index cc34a52..68c50c0 100644 --- a/demo-exception-handler/src/main/java/com/xkcoding/exception/handler/SpringBootDemoExceptionHandlerApplication.java +++ b/demo-exception-handler/src/main/java/com/xkcoding/exception/handler/SpringBootDemoExceptionHandlerApplication.java @@ -14,7 +14,7 @@ import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class SpringBootDemoExceptionHandlerApplication { - public static void main(String[] args) { - SpringApplication.run(SpringBootDemoExceptionHandlerApplication.class, args); - } + public static void main(String[] args) { + SpringApplication.run(SpringBootDemoExceptionHandlerApplication.class, args); + } } diff --git a/demo-exception-handler/src/main/java/com/xkcoding/exception/handler/constant/Status.java b/demo-exception-handler/src/main/java/com/xkcoding/exception/handler/constant/Status.java index b79a300..3f0eb18 100644 --- a/demo-exception-handler/src/main/java/com/xkcoding/exception/handler/constant/Status.java +++ b/demo-exception-handler/src/main/java/com/xkcoding/exception/handler/constant/Status.java @@ -12,26 +12,26 @@ import lombok.Getter; */ @Getter public enum Status { - /** - * 操作成功 - */ - OK(200, "操作成功"), + /** + * 操作成功 + */ + OK(200, "操作成功"), - /** - * 未知异常 - */ - UNKNOWN_ERROR(500, "服务器出错啦"); - /** - * 状态码 - */ - private Integer code; - /** - * 内容 - */ - private String message; + /** + * 未知异常 + */ + UNKNOWN_ERROR(500, "服务器出错啦"); + /** + * 状态码 + */ + private Integer code; + /** + * 内容 + */ + private String message; - Status(Integer code, String message) { - this.code = code; - this.message = message; - } + Status(Integer code, String message) { + this.code = code; + this.message = message; + } } diff --git a/demo-exception-handler/src/main/java/com/xkcoding/exception/handler/controller/TestController.java b/demo-exception-handler/src/main/java/com/xkcoding/exception/handler/controller/TestController.java index 94e1247..493e93c 100644 --- a/demo-exception-handler/src/main/java/com/xkcoding/exception/handler/controller/TestController.java +++ b/demo-exception-handler/src/main/java/com/xkcoding/exception/handler/controller/TestController.java @@ -20,14 +20,14 @@ import org.springframework.web.servlet.ModelAndView; @Controller public class TestController { - @GetMapping("/json") - @ResponseBody - public ApiResponse jsonException() { - throw new JsonException(Status.UNKNOWN_ERROR); - } + @GetMapping("/json") + @ResponseBody + public ApiResponse jsonException() { + throw new JsonException(Status.UNKNOWN_ERROR); + } - @GetMapping("/page") - public ModelAndView pageException() { - throw new PageException(Status.UNKNOWN_ERROR); - } + @GetMapping("/page") + public ModelAndView pageException() { + throw new PageException(Status.UNKNOWN_ERROR); + } } diff --git a/demo-exception-handler/src/main/java/com/xkcoding/exception/handler/exception/BaseException.java b/demo-exception-handler/src/main/java/com/xkcoding/exception/handler/exception/BaseException.java index 5fd4541..2d42003 100644 --- a/demo-exception-handler/src/main/java/com/xkcoding/exception/handler/exception/BaseException.java +++ b/demo-exception-handler/src/main/java/com/xkcoding/exception/handler/exception/BaseException.java @@ -15,18 +15,18 @@ import lombok.EqualsAndHashCode; @Data @EqualsAndHashCode(callSuper = true) public class BaseException extends RuntimeException { - private Integer code; - private String message; + private Integer code; + private String message; - public BaseException(Status status) { - super(status.getMessage()); - this.code = status.getCode(); - this.message = status.getMessage(); - } + public BaseException(Status status) { + super(status.getMessage()); + this.code = status.getCode(); + this.message = status.getMessage(); + } - public BaseException(Integer code, String message) { - super(message); - this.code = code; - this.message = message; - } + public BaseException(Integer code, String message) { + super(message); + this.code = code; + this.message = message; + } } diff --git a/demo-exception-handler/src/main/java/com/xkcoding/exception/handler/exception/JsonException.java b/demo-exception-handler/src/main/java/com/xkcoding/exception/handler/exception/JsonException.java index 9fce44a..fb71770 100644 --- a/demo-exception-handler/src/main/java/com/xkcoding/exception/handler/exception/JsonException.java +++ b/demo-exception-handler/src/main/java/com/xkcoding/exception/handler/exception/JsonException.java @@ -14,11 +14,11 @@ import lombok.Getter; @Getter public class JsonException extends BaseException { - public JsonException(Status status) { - super(status); - } + public JsonException(Status status) { + super(status); + } - public JsonException(Integer code, String message) { - super(code, message); - } + public JsonException(Integer code, String message) { + super(code, message); + } } diff --git a/demo-exception-handler/src/main/java/com/xkcoding/exception/handler/exception/PageException.java b/demo-exception-handler/src/main/java/com/xkcoding/exception/handler/exception/PageException.java index 9a92eae..97c9ba7 100644 --- a/demo-exception-handler/src/main/java/com/xkcoding/exception/handler/exception/PageException.java +++ b/demo-exception-handler/src/main/java/com/xkcoding/exception/handler/exception/PageException.java @@ -14,11 +14,11 @@ import lombok.Getter; @Getter public class PageException extends BaseException { - public PageException(Status status) { - super(status); - } + public PageException(Status status) { + super(status); + } - public PageException(Integer code, String message) { - super(code, message); - } + public PageException(Integer code, String message) { + super(code, message); + } } diff --git a/demo-exception-handler/src/main/java/com/xkcoding/exception/handler/handler/DemoExceptionHandler.java b/demo-exception-handler/src/main/java/com/xkcoding/exception/handler/handler/DemoExceptionHandler.java index 19b1d79..32eacf8 100644 --- a/demo-exception-handler/src/main/java/com/xkcoding/exception/handler/handler/DemoExceptionHandler.java +++ b/demo-exception-handler/src/main/java/com/xkcoding/exception/handler/handler/DemoExceptionHandler.java @@ -20,33 +20,33 @@ import org.springframework.web.servlet.ModelAndView; @ControllerAdvice @Slf4j public class DemoExceptionHandler { - private static final String DEFAULT_ERROR_VIEW = "error"; + private static final String DEFAULT_ERROR_VIEW = "error"; - /** - * 统一 json 异常处理 - * - * @param exception JsonException - * @return 统一返回 json 格式 - */ - @ExceptionHandler(value = JsonException.class) - @ResponseBody - public ApiResponse jsonErrorHandler(JsonException exception) { - log.error("【JsonException】:{}", exception.getMessage()); - return ApiResponse.ofException(exception); - } + /** + * 统一 json 异常处理 + * + * @param exception JsonException + * @return 统一返回 json 格式 + */ + @ExceptionHandler(value = JsonException.class) + @ResponseBody + public ApiResponse jsonErrorHandler(JsonException exception) { + log.error("【JsonException】:{}", exception.getMessage()); + return ApiResponse.ofException(exception); + } - /** - * 统一 页面 异常处理 - * - * @param exception PageException - * @return 统一跳转到异常页面 - */ - @ExceptionHandler(value = PageException.class) - public ModelAndView pageErrorHandler(PageException exception) { - log.error("【DemoPageException】:{}", exception.getMessage()); - ModelAndView view = new ModelAndView(); - view.addObject("message", exception.getMessage()); - view.setViewName(DEFAULT_ERROR_VIEW); - return view; - } + /** + * 统一 页面 异常处理 + * + * @param exception PageException + * @return 统一跳转到异常页面 + */ + @ExceptionHandler(value = PageException.class) + public ModelAndView pageErrorHandler(PageException exception) { + log.error("【DemoPageException】:{}", exception.getMessage()); + ModelAndView view = new ModelAndView(); + view.addObject("message", exception.getMessage()); + view.setViewName(DEFAULT_ERROR_VIEW); + return view; + } } diff --git a/demo-exception-handler/src/main/java/com/xkcoding/exception/handler/model/ApiResponse.java b/demo-exception-handler/src/main/java/com/xkcoding/exception/handler/model/ApiResponse.java index 7b028fd..8c5fa71 100644 --- a/demo-exception-handler/src/main/java/com/xkcoding/exception/handler/model/ApiResponse.java +++ b/demo-exception-handler/src/main/java/com/xkcoding/exception/handler/model/ApiResponse.java @@ -14,114 +14,114 @@ import lombok.Data; */ @Data public class ApiResponse { - /** - * 状态码 - */ - private Integer code; + /** + * 状态码 + */ + private Integer code; - /** - * 返回内容 - */ - private String message; + /** + * 返回内容 + */ + private String message; - /** - * 返回数据 - */ - private Object data; + /** + * 返回数据 + */ + private Object data; - /** - * 无参构造函数 - */ - private ApiResponse() { + /** + * 无参构造函数 + */ + private ApiResponse() { - } + } - /** - * 全参构造函数 - * - * @param code 状态码 - * @param message 返回内容 - * @param data 返回数据 - */ - private ApiResponse(Integer code, String message, Object data) { - this.code = code; - this.message = message; - this.data = data; - } + /** + * 全参构造函数 + * + * @param code 状态码 + * @param message 返回内容 + * @param data 返回数据 + */ + private ApiResponse(Integer code, String message, Object data) { + this.code = code; + this.message = message; + this.data = data; + } - /** - * 构造一个自定义的API返回 - * - * @param code 状态码 - * @param message 返回内容 - * @param data 返回数据 - * @return ApiResponse - */ - public static ApiResponse of(Integer code, String message, Object data) { - return new ApiResponse(code, message, data); - } + /** + * 构造一个自定义的API返回 + * + * @param code 状态码 + * @param message 返回内容 + * @param data 返回数据 + * @return ApiResponse + */ + public static ApiResponse of(Integer code, String message, Object data) { + return new ApiResponse(code, message, data); + } - /** - * 构造一个成功且带数据的API返回 - * - * @param data 返回数据 - * @return ApiResponse - */ - public static ApiResponse ofSuccess(Object data) { - return ofStatus(Status.OK, data); - } + /** + * 构造一个成功且带数据的API返回 + * + * @param data 返回数据 + * @return ApiResponse + */ + public static ApiResponse ofSuccess(Object data) { + return ofStatus(Status.OK, data); + } - /** - * 构造一个成功且自定义消息的API返回 - * - * @param message 返回内容 - * @return ApiResponse - */ - public static ApiResponse ofMessage(String message) { - return of(Status.OK.getCode(), message, null); - } + /** + * 构造一个成功且自定义消息的API返回 + * + * @param message 返回内容 + * @return ApiResponse + */ + public static ApiResponse ofMessage(String message) { + return of(Status.OK.getCode(), message, null); + } - /** - * 构造一个有状态的API返回 - * - * @param status 状态 {@link Status} - * @return ApiResponse - */ - public static ApiResponse ofStatus(Status status) { - return ofStatus(status, null); - } + /** + * 构造一个有状态的API返回 + * + * @param status 状态 {@link Status} + * @return ApiResponse + */ + public static ApiResponse ofStatus(Status status) { + return ofStatus(status, null); + } - /** - * 构造一个有状态且带数据的API返回 - * - * @param status 状态 {@link Status} - * @param data 返回数据 - * @return ApiResponse - */ - public static ApiResponse ofStatus(Status status, Object data) { - return of(status.getCode(), status.getMessage(), data); - } + /** + * 构造一个有状态且带数据的API返回 + * + * @param status 状态 {@link Status} + * @param data 返回数据 + * @return ApiResponse + */ + public static ApiResponse ofStatus(Status status, Object data) { + return of(status.getCode(), status.getMessage(), data); + } - /** - * 构造一个异常且带数据的API返回 - * - * @param t 异常 - * @param data 返回数据 - * @param {@link BaseException} 的子类 - * @return ApiResponse - */ - public static ApiResponse ofException(T t, Object data) { - return of(t.getCode(), t.getMessage(), data); - } + /** + * 构造一个异常且带数据的API返回 + * + * @param t 异常 + * @param data 返回数据 + * @param {@link BaseException} 的子类 + * @return ApiResponse + */ + public static ApiResponse ofException(T t, Object data) { + return of(t.getCode(), t.getMessage(), data); + } - /** - * 构造一个异常且带数据的API返回 - * - * @param t 异常 - * @param {@link BaseException} 的子类 - * @return ApiResponse - */ - public static ApiResponse ofException(T t) { - return ofException(t, null); - } + /** + * 构造一个异常且带数据的API返回 + * + * @param t 异常 + * @param {@link BaseException} 的子类 + * @return ApiResponse + */ + public static ApiResponse ofException(T t) { + return ofException(t, null); + } } diff --git a/demo-exception-handler/src/test/java/com/xkcoding/exception/handler/SpringBootDemoExceptionHandlerApplicationTests.java b/demo-exception-handler/src/test/java/com/xkcoding/exception/handler/SpringBootDemoExceptionHandlerApplicationTests.java index 399902c..489e1b2 100644 --- a/demo-exception-handler/src/test/java/com/xkcoding/exception/handler/SpringBootDemoExceptionHandlerApplicationTests.java +++ b/demo-exception-handler/src/test/java/com/xkcoding/exception/handler/SpringBootDemoExceptionHandlerApplicationTests.java @@ -9,8 +9,8 @@ import org.springframework.test.context.junit4.SpringRunner; @SpringBootTest public class SpringBootDemoExceptionHandlerApplicationTests { - @Test - public void contextLoads() { - } + @Test + public void contextLoads() { + } } diff --git a/demo-flyway/src/test/java/com/xkcoding/AppTest.java b/demo-flyway/src/test/java/com/xkcoding/AppTest.java index 16a8ef2..a6bfab6 100644 --- a/demo-flyway/src/test/java/com/xkcoding/AppTest.java +++ b/demo-flyway/src/test/java/com/xkcoding/AppTest.java @@ -1,20 +1,18 @@ package com.xkcoding; -import static org.junit.Assert.assertTrue; - import org.junit.Test; +import static org.junit.Assert.assertTrue; + /** * Unit test for simple App. */ -public class AppTest -{ +public class AppTest { /** * Rigorous Test :-) */ @Test - public void shouldAnswerWithTrue() - { - assertTrue( true ); + public void shouldAnswerWithTrue() { + assertTrue(true); } } diff --git a/demo-helloworld/src/main/java/com/xkcoding/helloworld/SpringBootDemoHelloworldApplication.java b/demo-helloworld/src/main/java/com/xkcoding/helloworld/SpringBootDemoHelloworldApplication.java index 90433cb..55b3be6 100644 --- a/demo-helloworld/src/main/java/com/xkcoding/helloworld/SpringBootDemoHelloworldApplication.java +++ b/demo-helloworld/src/main/java/com/xkcoding/helloworld/SpringBootDemoHelloworldApplication.java @@ -19,21 +19,21 @@ import org.springframework.web.bind.annotation.RestController; @RestController public class SpringBootDemoHelloworldApplication { - public static void main(String[] args) { - SpringApplication.run(SpringBootDemoHelloworldApplication.class, args); - } + public static void main(String[] args) { + SpringApplication.run(SpringBootDemoHelloworldApplication.class, args); + } - /** - * Hello,World - * - * @param who 参数,非必须 - * @return Hello, ${who} - */ - @GetMapping("/hello") - public String sayHello(@RequestParam(required = false, name = "who") String who) { - if (StrUtil.isBlank(who)) { - who = "World"; - } - return StrUtil.format("Hello, {}!", who); - } + /** + * Hello,World + * + * @param who 参数,非必须 + * @return Hello, ${who} + */ + @GetMapping("/hello") + public String sayHello(@RequestParam(required = false, name = "who") String who) { + if (StrUtil.isBlank(who)) { + who = "World"; + } + return StrUtil.format("Hello, {}!", who); + } } diff --git a/demo-helloworld/src/test/java/com/xkcoding/helloworld/SpringBootDemoHelloworldApplicationTests.java b/demo-helloworld/src/test/java/com/xkcoding/helloworld/SpringBootDemoHelloworldApplicationTests.java index d4afb69..547e54b 100644 --- a/demo-helloworld/src/test/java/com/xkcoding/helloworld/SpringBootDemoHelloworldApplicationTests.java +++ b/demo-helloworld/src/test/java/com/xkcoding/helloworld/SpringBootDemoHelloworldApplicationTests.java @@ -9,8 +9,8 @@ import org.springframework.test.context.junit4.SpringRunner; @SpringBootTest public class SpringBootDemoHelloworldApplicationTests { - @Test - public void contextLoads() { - } + @Test + public void contextLoads() { + } } diff --git a/demo-https/src/main/resources/static/index.html b/demo-https/src/main/resources/static/index.html index 067bc53..933c73e 100644 --- a/demo-https/src/main/resources/static/index.html +++ b/demo-https/src/main/resources/static/index.html @@ -1,5 +1,5 @@ - + spring boot demo https diff --git a/demo-ldap/src/main/java/com/xkcoding/ldap/api/Result.java b/demo-ldap/src/main/java/com/xkcoding/ldap/api/Result.java index 93da11a..ccf9a55 100644 --- a/demo-ldap/src/main/java/com/xkcoding/ldap/api/Result.java +++ b/demo-ldap/src/main/java/com/xkcoding/ldap/api/Result.java @@ -54,7 +54,6 @@ public class Result implements Serializable { } - /** * 返回成功 * @@ -70,7 +69,7 @@ public class Result implements Serializable { * 返回成功-携带数据 * * @param data 响应数据 - * @param 泛型标记 + * @param 泛型标记 * @return 响应信息 {@code Result} */ public static Result success(@Nullable T data) { @@ -78,7 +77,4 @@ public class Result implements Serializable { } - - - } diff --git a/demo-ldap/src/main/java/com/xkcoding/ldap/entity/Person.java b/demo-ldap/src/main/java/com/xkcoding/ldap/entity/Person.java index 49acfee..ad7ebef 100644 --- a/demo-ldap/src/main/java/com/xkcoding/ldap/entity/Person.java +++ b/demo-ldap/src/main/java/com/xkcoding/ldap/entity/Person.java @@ -17,10 +17,7 @@ import java.io.Serializable; * @since 2019-08-26 0:51 */ @Data -@Entry( - base = "ou=people", - objectClasses = {"posixAccount", "inetOrgPerson", "top"} -) +@Entry(base = "ou=people", objectClasses = {"posixAccount", "inetOrgPerson", "top"}) public class Person implements Serializable { private static final long serialVersionUID = -7946768337975852352L; diff --git a/demo-log-aop/src/main/java/com/xkcoding/log/aop/SpringBootDemoLogAopApplication.java b/demo-log-aop/src/main/java/com/xkcoding/log/aop/SpringBootDemoLogAopApplication.java index 485ce56..32d225c 100644 --- a/demo-log-aop/src/main/java/com/xkcoding/log/aop/SpringBootDemoLogAopApplication.java +++ b/demo-log-aop/src/main/java/com/xkcoding/log/aop/SpringBootDemoLogAopApplication.java @@ -14,7 +14,7 @@ import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class SpringBootDemoLogAopApplication { - public static void main(String[] args) { - SpringApplication.run(SpringBootDemoLogAopApplication.class, args); - } + public static void main(String[] args) { + SpringApplication.run(SpringBootDemoLogAopApplication.class, args); + } } diff --git a/demo-log-aop/src/main/java/com/xkcoding/log/aop/aspectj/AopLog.java b/demo-log-aop/src/main/java/com/xkcoding/log/aop/aspectj/AopLog.java index 92d2a8d..487a35a 100644 --- a/demo-log-aop/src/main/java/com/xkcoding/log/aop/aspectj/AopLog.java +++ b/demo-log-aop/src/main/java/com/xkcoding/log/aop/aspectj/AopLog.java @@ -26,65 +26,65 @@ import java.util.Objects; @Component @Slf4j public class AopLog { - private static final String START_TIME = "request-start"; + private static final String START_TIME = "request-start"; - /** - * 切入点 - */ - @Pointcut("execution(public * com.xkcoding.log.aop.controller.*Controller.*(..))") - public void log() { + /** + * 切入点 + */ + @Pointcut("execution(public * com.xkcoding.log.aop.controller.*Controller.*(..))") + public void log() { - } + } - /** - * 前置操作 - * - * @param point 切入点 - */ - @Before("log()") - public void beforeLog(JoinPoint point) { - ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes(); + /** + * 前置操作 + * + * @param point 切入点 + */ + @Before("log()") + public void beforeLog(JoinPoint point) { + ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes(); - HttpServletRequest request = Objects.requireNonNull(attributes).getRequest(); + HttpServletRequest request = Objects.requireNonNull(attributes).getRequest(); - log.info("【请求 URL】:{}", request.getRequestURL()); - log.info("【请求 IP】:{}", request.getRemoteAddr()); - log.info("【请求类名】:{},【请求方法名】:{}", point.getSignature().getDeclaringTypeName(), point.getSignature().getName()); + log.info("【请求 URL】:{}", request.getRequestURL()); + log.info("【请求 IP】:{}", request.getRemoteAddr()); + log.info("【请求类名】:{},【请求方法名】:{}", point.getSignature().getDeclaringTypeName(), point.getSignature().getName()); - Map parameterMap = request.getParameterMap(); - log.info("【请求参数】:{},", JSONUtil.toJsonStr(parameterMap)); - Long start = System.currentTimeMillis(); - request.setAttribute(START_TIME, start); - } + Map parameterMap = request.getParameterMap(); + log.info("【请求参数】:{},", JSONUtil.toJsonStr(parameterMap)); + Long start = System.currentTimeMillis(); + request.setAttribute(START_TIME, start); + } - /** - * 环绕操作 - * - * @param point 切入点 - * @return 原方法返回值 - * @throws Throwable 异常信息 - */ - @Around("log()") - public Object aroundLog(ProceedingJoinPoint point) throws Throwable { - Object result = point.proceed(); - log.info("【返回值】:{}", JSONUtil.toJsonStr(result)); - return result; - } + /** + * 环绕操作 + * + * @param point 切入点 + * @return 原方法返回值 + * @throws Throwable 异常信息 + */ + @Around("log()") + public Object aroundLog(ProceedingJoinPoint point) throws Throwable { + Object result = point.proceed(); + log.info("【返回值】:{}", JSONUtil.toJsonStr(result)); + return result; + } - /** - * 后置操作 - */ - @AfterReturning("log()") - public void afterReturning() { - ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes(); - HttpServletRequest request = Objects.requireNonNull(attributes).getRequest(); + /** + * 后置操作 + */ + @AfterReturning("log()") + public void afterReturning() { + ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes(); + HttpServletRequest request = Objects.requireNonNull(attributes).getRequest(); - Long start = (Long) request.getAttribute(START_TIME); - Long end = System.currentTimeMillis(); - log.info("【请求耗时】:{}毫秒", end - start); + Long start = (Long) request.getAttribute(START_TIME); + Long end = System.currentTimeMillis(); + log.info("【请求耗时】:{}毫秒", end - start); - String header = request.getHeader("User-Agent"); - UserAgent userAgent = UserAgent.parseUserAgentString(header); - log.info("【浏览器类型】:{},【操作系统】:{},【原始User-Agent】:{}", userAgent.getBrowser().toString(), userAgent.getOperatingSystem().toString(), header); - } + String header = request.getHeader("User-Agent"); + UserAgent userAgent = UserAgent.parseUserAgentString(header); + log.info("【浏览器类型】:{},【操作系统】:{},【原始User-Agent】:{}", userAgent.getBrowser().toString(), userAgent.getOperatingSystem().toString(), header); + } } diff --git a/demo-log-aop/src/main/java/com/xkcoding/log/aop/controller/TestController.java b/demo-log-aop/src/main/java/com/xkcoding/log/aop/controller/TestController.java index 19292b3..0eda896 100644 --- a/demo-log-aop/src/main/java/com/xkcoding/log/aop/controller/TestController.java +++ b/demo-log-aop/src/main/java/com/xkcoding/log/aop/controller/TestController.java @@ -16,15 +16,15 @@ import org.springframework.web.bind.annotation.RestController; @RestController public class TestController { - /** - * 测试方法 - * - * @param who 测试参数 - * @return {@link Dict} - */ - @GetMapping("/test") - public Dict test(String who) { - return Dict.create().set("who", StrUtil.isBlank(who) ? "me" : who); - } + /** + * 测试方法 + * + * @param who 测试参数 + * @return {@link Dict} + */ + @GetMapping("/test") + public Dict test(String who) { + return Dict.create().set("who", StrUtil.isBlank(who) ? "me" : who); + } } diff --git a/demo-log-aop/src/test/java/com/xkcoding/log/aop/SpringBootDemoLogAopApplicationTests.java b/demo-log-aop/src/test/java/com/xkcoding/log/aop/SpringBootDemoLogAopApplicationTests.java index f2af7df..af44ad9 100644 --- a/demo-log-aop/src/test/java/com/xkcoding/log/aop/SpringBootDemoLogAopApplicationTests.java +++ b/demo-log-aop/src/test/java/com/xkcoding/log/aop/SpringBootDemoLogAopApplicationTests.java @@ -9,8 +9,8 @@ import org.springframework.test.context.junit4.SpringRunner; @SpringBootTest public class SpringBootDemoLogAopApplicationTests { - @Test - public void contextLoads() { - } + @Test + public void contextLoads() { + } } diff --git a/demo-logback/src/main/java/com/xkcoding/logback/SpringBootDemoLogbackApplication.java b/demo-logback/src/main/java/com/xkcoding/logback/SpringBootDemoLogbackApplication.java index ba2f53c..217ee02 100644 --- a/demo-logback/src/main/java/com/xkcoding/logback/SpringBootDemoLogbackApplication.java +++ b/demo-logback/src/main/java/com/xkcoding/logback/SpringBootDemoLogbackApplication.java @@ -17,19 +17,19 @@ import org.springframework.context.ConfigurableApplicationContext; @Slf4j public class SpringBootDemoLogbackApplication { - public static void main(String[] args) { - ConfigurableApplicationContext context = SpringApplication.run(SpringBootDemoLogbackApplication.class, args); - int length = context.getBeanDefinitionNames().length; - log.trace("Spring boot启动初始化了 {} 个 Bean", length); - log.debug("Spring boot启动初始化了 {} 个 Bean", length); - log.info("Spring boot启动初始化了 {} 个 Bean", length); - log.warn("Spring boot启动初始化了 {} 个 Bean", length); - log.error("Spring boot启动初始化了 {} 个 Bean", length); - try { - int i = 0; - int j = 1 / i; - } catch (Exception e) { - log.error("【SpringBootDemoLogbackApplication】启动异常:", e); - } - } + public static void main(String[] args) { + ConfigurableApplicationContext context = SpringApplication.run(SpringBootDemoLogbackApplication.class, args); + int length = context.getBeanDefinitionNames().length; + log.trace("Spring boot启动初始化了 {} 个 Bean", length); + log.debug("Spring boot启动初始化了 {} 个 Bean", length); + log.info("Spring boot启动初始化了 {} 个 Bean", length); + log.warn("Spring boot启动初始化了 {} 个 Bean", length); + log.error("Spring boot启动初始化了 {} 个 Bean", length); + try { + int i = 0; + int j = 1 / i; + } catch (Exception e) { + log.error("【SpringBootDemoLogbackApplication】启动异常:", e); + } + } } diff --git a/demo-logback/src/test/java/com/xkcoding/logback/SpringBootDemoLogbackApplicationTests.java b/demo-logback/src/test/java/com/xkcoding/logback/SpringBootDemoLogbackApplicationTests.java index b387f30..53bbb7f 100644 --- a/demo-logback/src/test/java/com/xkcoding/logback/SpringBootDemoLogbackApplicationTests.java +++ b/demo-logback/src/test/java/com/xkcoding/logback/SpringBootDemoLogbackApplicationTests.java @@ -9,8 +9,8 @@ import org.springframework.test.context.junit4.SpringRunner; @SpringBootTest public class SpringBootDemoLogbackApplicationTests { - @Test - public void contextLoads() { - } + @Test + public void contextLoads() { + } } diff --git a/demo-mongodb/src/test/java/com/xkcoding/mongodb/repository/ArticleRepositoryTest.java b/demo-mongodb/src/test/java/com/xkcoding/mongodb/repository/ArticleRepositoryTest.java index 1cf567d..6617c73 100644 --- a/demo-mongodb/src/test/java/com/xkcoding/mongodb/repository/ArticleRepositoryTest.java +++ b/demo-mongodb/src/test/java/com/xkcoding/mongodb/repository/ArticleRepositoryTest.java @@ -45,8 +45,7 @@ public class ArticleRepositoryTest extends SpringBootDemoMongodbApplicationTests */ @Test public void testSave() { - Article article = new Article(1L, RandomUtil.randomString(20), RandomUtil.randomString(150), DateUtil.date(), DateUtil - .date(), 0L, 0L); + Article article = new Article(1L, RandomUtil.randomString(20), RandomUtil.randomString(150), DateUtil.date(), DateUtil.date(), 0L, 0L); articleRepo.save(article); log.info("【article】= {}", JSONUtil.toJsonStr(article)); } @@ -58,14 +57,11 @@ public class ArticleRepositoryTest extends SpringBootDemoMongodbApplicationTests public void testSaveList() { List
articles = Lists.newArrayList(); for (int i = 0; i < 10; i++) { - articles.add(new Article(snowflake.nextId(), RandomUtil.randomString(20), RandomUtil.randomString(150), DateUtil - .date(), DateUtil.date(), 0L, 0L)); + articles.add(new Article(snowflake.nextId(), RandomUtil.randomString(20), RandomUtil.randomString(150), DateUtil.date(), DateUtil.date(), 0L, 0L)); } articleRepo.saveAll(articles); - log.info("【articles】= {}", JSONUtil.toJsonStr(articles.stream() - .map(Article::getId) - .collect(Collectors.toList()))); + log.info("【articles】= {}", JSONUtil.toJsonStr(articles.stream().map(Article::getId).collect(Collectors.toList()))); } /** @@ -118,9 +114,7 @@ public class ArticleRepositoryTest extends SpringBootDemoMongodbApplicationTests update.inc("visits", 1L); mongoTemplate.updateFirst(query, update, "article"); - articleRepo.findById(1L) - .ifPresent(article -> log.info("【标题】= {}【点赞数】= {}【访客数】= {}", article.getTitle(), article.getThumbUp(), article - .getVisits())); + articleRepo.findById(1L).ifPresent(article -> log.info("【标题】= {}【点赞数】= {}【访客数】= {}", article.getTitle(), article.getThumbUp(), article.getVisits())); } /** @@ -133,10 +127,7 @@ public class ArticleRepositoryTest extends SpringBootDemoMongodbApplicationTests Page
all = articleRepo.findAll(pageRequest); log.info("【总页数】= {}", all.getTotalPages()); log.info("【总条数】= {}", all.getTotalElements()); - log.info("【当前页数据】= {}", JSONUtil.toJsonStr(all.getContent() - .stream() - .map(article -> "文章标题:" + article.getTitle() + "点赞数:" + article.getThumbUp() + "更新时间:" + article.getUpdateTime()) - .collect(Collectors.toList()))); + log.info("【当前页数据】= {}", JSONUtil.toJsonStr(all.getContent().stream().map(article -> "文章标题:" + article.getTitle() + "点赞数:" + article.getThumbUp() + "更新时间:" + article.getUpdateTime()).collect(Collectors.toList()))); } /** diff --git a/demo-mq-rabbitmq/src/test/java/com/xkcoding/mq/rabbitmq/SpringBootDemoMqRabbitmqApplicationTests.java b/demo-mq-rabbitmq/src/test/java/com/xkcoding/mq/rabbitmq/SpringBootDemoMqRabbitmqApplicationTests.java index 2a69a26..27251cc 100644 --- a/demo-mq-rabbitmq/src/test/java/com/xkcoding/mq/rabbitmq/SpringBootDemoMqRabbitmqApplicationTests.java +++ b/demo-mq-rabbitmq/src/test/java/com/xkcoding/mq/rabbitmq/SpringBootDemoMqRabbitmqApplicationTests.java @@ -61,18 +61,15 @@ public class SpringBootDemoMqRabbitmqApplicationTests { */ @Test public void sendDelay() { - rabbitTemplate.convertAndSend(RabbitConsts.DELAY_MODE_QUEUE, RabbitConsts.DELAY_QUEUE, new MessageStruct("delay message, delay 5s, " + DateUtil - .date()), message -> { + rabbitTemplate.convertAndSend(RabbitConsts.DELAY_MODE_QUEUE, RabbitConsts.DELAY_QUEUE, new MessageStruct("delay message, delay 5s, " + DateUtil.date()), message -> { message.getMessageProperties().setHeader("x-delay", 5000); return message; }); - rabbitTemplate.convertAndSend(RabbitConsts.DELAY_MODE_QUEUE, RabbitConsts.DELAY_QUEUE, new MessageStruct("delay message, delay 2s, " + DateUtil - .date()), message -> { + rabbitTemplate.convertAndSend(RabbitConsts.DELAY_MODE_QUEUE, RabbitConsts.DELAY_QUEUE, new MessageStruct("delay message, delay 2s, " + DateUtil.date()), message -> { message.getMessageProperties().setHeader("x-delay", 2000); return message; }); - rabbitTemplate.convertAndSend(RabbitConsts.DELAY_MODE_QUEUE, RabbitConsts.DELAY_QUEUE, new MessageStruct("delay message, delay 8s, " + DateUtil - .date()), message -> { + rabbitTemplate.convertAndSend(RabbitConsts.DELAY_MODE_QUEUE, RabbitConsts.DELAY_QUEUE, new MessageStruct("delay message, delay 8s, " + DateUtil.date()), message -> { message.getMessageProperties().setHeader("x-delay", 8000); return message; }); diff --git a/demo-multi-datasource-jpa/src/main/java/com/xkcoding/multi/datasource/jpa/config/PrimaryJpaConfig.java b/demo-multi-datasource-jpa/src/main/java/com/xkcoding/multi/datasource/jpa/config/PrimaryJpaConfig.java index 6ed198a..39f93e6 100644 --- a/demo-multi-datasource-jpa/src/main/java/com/xkcoding/multi/datasource/jpa/config/PrimaryJpaConfig.java +++ b/demo-multi-datasource-jpa/src/main/java/com/xkcoding/multi/datasource/jpa/config/PrimaryJpaConfig.java @@ -28,12 +28,12 @@ import javax.sql.DataSource; @Configuration @EnableTransactionManagement @EnableJpaRepositories( - // repository包名 - basePackages = PrimaryJpaConfig.REPOSITORY_PACKAGE, - // 实体管理bean名称 - entityManagerFactoryRef = "primaryEntityManagerFactory", - // 事务管理bean名称 - transactionManagerRef = "primaryTransactionManager") + // repository包名 + basePackages = PrimaryJpaConfig.REPOSITORY_PACKAGE, + // 实体管理bean名称 + entityManagerFactoryRef = "primaryEntityManagerFactory", + // 事务管理bean名称 + transactionManagerRef = "primaryTransactionManager") public class PrimaryJpaConfig { static final String REPOSITORY_PACKAGE = "com.xkcoding.multi.datasource.jpa.repository.primary"; private static final String ENTITY_PACKAGE = "com.xkcoding.multi.datasource.jpa.entity.primary"; @@ -63,14 +63,14 @@ public class PrimaryJpaConfig { @Bean(name = "primaryEntityManagerFactory") public LocalContainerEntityManagerFactoryBean entityManagerFactory(@Qualifier("primaryDataSource") DataSource primaryDataSource, @Qualifier("primaryJpaProperties") JpaProperties jpaProperties, EntityManagerFactoryBuilder builder) { return builder - // 设置数据源 - .dataSource(primaryDataSource) - // 设置jpa配置 - .properties(jpaProperties.getProperties()) - // 设置实体包名 - .packages(ENTITY_PACKAGE) - // 设置持久化单元名,用于@PersistenceContext注解获取EntityManager时指定数据源 - .persistenceUnit("primaryPersistenceUnit").build(); + // 设置数据源 + .dataSource(primaryDataSource) + // 设置jpa配置 + .properties(jpaProperties.getProperties()) + // 设置实体包名 + .packages(ENTITY_PACKAGE) + // 设置持久化单元名,用于@PersistenceContext注解获取EntityManager时指定数据源 + .persistenceUnit("primaryPersistenceUnit").build(); } /** diff --git a/demo-multi-datasource-jpa/src/main/java/com/xkcoding/multi/datasource/jpa/config/SecondJpaConfig.java b/demo-multi-datasource-jpa/src/main/java/com/xkcoding/multi/datasource/jpa/config/SecondJpaConfig.java index 3228f6b..ebbc349 100644 --- a/demo-multi-datasource-jpa/src/main/java/com/xkcoding/multi/datasource/jpa/config/SecondJpaConfig.java +++ b/demo-multi-datasource-jpa/src/main/java/com/xkcoding/multi/datasource/jpa/config/SecondJpaConfig.java @@ -27,12 +27,12 @@ import javax.sql.DataSource; @Configuration @EnableTransactionManagement @EnableJpaRepositories( - // repository包名 - basePackages = SecondJpaConfig.REPOSITORY_PACKAGE, - // 实体管理bean名称 - entityManagerFactoryRef = "secondEntityManagerFactory", - // 事务管理bean名称 - transactionManagerRef = "secondTransactionManager") + // repository包名 + basePackages = SecondJpaConfig.REPOSITORY_PACKAGE, + // 实体管理bean名称 + entityManagerFactoryRef = "secondEntityManagerFactory", + // 事务管理bean名称 + transactionManagerRef = "secondTransactionManager") public class SecondJpaConfig { static final String REPOSITORY_PACKAGE = "com.xkcoding.multi.datasource.jpa.repository.second"; private static final String ENTITY_PACKAGE = "com.xkcoding.multi.datasource.jpa.entity.second"; @@ -60,14 +60,14 @@ public class SecondJpaConfig { @Bean(name = "secondEntityManagerFactory") public LocalContainerEntityManagerFactoryBean entityManagerFactory(@Qualifier("secondDataSource") DataSource secondDataSource, @Qualifier("secondJpaProperties") JpaProperties jpaProperties, EntityManagerFactoryBuilder builder) { return builder - // 设置数据源 - .dataSource(secondDataSource) - // 设置jpa配置 - .properties(jpaProperties.getProperties()) - // 设置实体包名 - .packages(ENTITY_PACKAGE) - // 设置持久化单元名,用于@PersistenceContext注解获取EntityManager时指定数据源 - .persistenceUnit("secondPersistenceUnit").build(); + // 设置数据源 + .dataSource(secondDataSource) + // 设置jpa配置 + .properties(jpaProperties.getProperties()) + // 设置实体包名 + .packages(ENTITY_PACKAGE) + // 设置持久化单元名,用于@PersistenceContext注解获取EntityManager时指定数据源 + .persistenceUnit("secondPersistenceUnit").build(); } /** diff --git a/demo-multi-datasource-jpa/src/main/java/com/xkcoding/multi/datasource/jpa/config/SnowflakeConfig.java b/demo-multi-datasource-jpa/src/main/java/com/xkcoding/multi/datasource/jpa/config/SnowflakeConfig.java index 0b900e3..2508fb9 100644 --- a/demo-multi-datasource-jpa/src/main/java/com/xkcoding/multi/datasource/jpa/config/SnowflakeConfig.java +++ b/demo-multi-datasource-jpa/src/main/java/com/xkcoding/multi/datasource/jpa/config/SnowflakeConfig.java @@ -16,7 +16,7 @@ import org.springframework.context.annotation.Configuration; @Configuration public class SnowflakeConfig { @Bean - public Snowflake snowflake(){ - return IdUtil.createSnowflake(1,1); + public Snowflake snowflake() { + return IdUtil.createSnowflake(1, 1); } } diff --git a/demo-multi-datasource-jpa/src/test/java/com/xkcoding/multi/datasource/jpa/SpringBootDemoMultiDatasourceJpaApplicationTests.java b/demo-multi-datasource-jpa/src/test/java/com/xkcoding/multi/datasource/jpa/SpringBootDemoMultiDatasourceJpaApplicationTests.java index dd33ac9..9e6bc4d 100644 --- a/demo-multi-datasource-jpa/src/test/java/com/xkcoding/multi/datasource/jpa/SpringBootDemoMultiDatasourceJpaApplicationTests.java +++ b/demo-multi-datasource-jpa/src/test/java/com/xkcoding/multi/datasource/jpa/SpringBootDemoMultiDatasourceJpaApplicationTests.java @@ -28,7 +28,7 @@ public class SpringBootDemoMultiDatasourceJpaApplicationTests { @Test public void testInsert() { - PrimaryMultiTable primary = new PrimaryMultiTable(snowflake.nextId(),"测试名称-1"); + PrimaryMultiTable primary = new PrimaryMultiTable(snowflake.nextId(), "测试名称-1"); primaryRepo.save(primary); SecondMultiTable second = new SecondMultiTable(); @@ -39,7 +39,7 @@ public class SpringBootDemoMultiDatasourceJpaApplicationTests { @Test public void testUpdate() { primaryRepo.findAll().forEach(primary -> { - primary.setName("修改后的"+primary.getName()); + primary.setName("修改后的" + primary.getName()); primaryRepo.save(primary); SecondMultiTable second = new SecondMultiTable(); diff --git a/demo-neo4j/src/main/java/com/xkcoding/neo4j/service/NeoService.java b/demo-neo4j/src/main/java/com/xkcoding/neo4j/service/NeoService.java index 664fad1..01c84c7 100644 --- a/demo-neo4j/src/main/java/com/xkcoding/neo4j/service/NeoService.java +++ b/demo-neo4j/src/main/java/com/xkcoding/neo4j/service/NeoService.java @@ -90,10 +90,8 @@ public class NeoService { classRepo.save(seven); // 初始化学生 - List threeClass = Lists.newArrayList(Student.of("漩涡鸣人", Lists.newArrayList(tishu, shoulijian, luoxuanwan, xianshu), seven), Student - .of("宇智波佐助", Lists.newArrayList(huanshu, zhouyin, shoulijian), seven), Student.of("春野樱", Lists.newArrayList(tishu, yiliao, shoulijian), seven)); - List sevenClass = Lists.newArrayList(Student.of("李洛克", Lists.newArrayList(tishu), three), Student.of("日向宁次", Lists - .newArrayList(tishu), three), Student.of("天天", Lists.newArrayList(tishu), three)); + List threeClass = Lists.newArrayList(Student.of("漩涡鸣人", Lists.newArrayList(tishu, shoulijian, luoxuanwan, xianshu), seven), Student.of("宇智波佐助", Lists.newArrayList(huanshu, zhouyin, shoulijian), seven), Student.of("春野樱", Lists.newArrayList(tishu, yiliao, shoulijian), seven)); + List sevenClass = Lists.newArrayList(Student.of("李洛克", Lists.newArrayList(tishu), three), Student.of("日向宁次", Lists.newArrayList(tishu), three), Student.of("天天", Lists.newArrayList(tishu), three)); studentRepo.saveAll(threeClass); studentRepo.saveAll(sevenClass); @@ -155,8 +153,7 @@ public class NeoService { List groupByLesson = studentRepo.findByClassmateGroupByLesson(); Map> result = Maps.newHashMap(); - groupByLesson.forEach(classmateInfoGroupByLesson -> result.put(classmateInfoGroupByLesson.getLessonName(), classmateInfoGroupByLesson - .getStudents())); + groupByLesson.forEach(classmateInfoGroupByLesson -> result.put(classmateInfoGroupByLesson.getLessonName(), classmateInfoGroupByLesson.getStudents())); return result; } @@ -171,11 +168,9 @@ public class NeoService { List teacherStudentByLesson = studentRepo.findTeacherStudentByLesson(); Map> result = Maps.newHashMap(); - teacherStudentByClass.forEach(teacherStudent -> result.put(teacherStudent.getTeacherName(), Sets.newHashSet(teacherStudent - .getStudents()))); + teacherStudentByClass.forEach(teacherStudent -> result.put(teacherStudent.getTeacherName(), Sets.newHashSet(teacherStudent.getStudents()))); - teacherStudentByLesson.forEach(teacherStudent -> result.put(teacherStudent.getTeacherName(), Sets.newHashSet(teacherStudent - .getStudents()))); + teacherStudentByLesson.forEach(teacherStudent -> result.put(teacherStudent.getTeacherName(), Sets.newHashSet(teacherStudent.getStudents()))); return result; } diff --git a/demo-neo4j/src/test/java/com/xkcoding/neo4j/Neo4jTest.java b/demo-neo4j/src/test/java/com/xkcoding/neo4j/Neo4jTest.java index f529833..c7cc939 100644 --- a/demo-neo4j/src/test/java/com/xkcoding/neo4j/Neo4jTest.java +++ b/demo-neo4j/src/test/java/com/xkcoding/neo4j/Neo4jTest.java @@ -71,9 +71,7 @@ public class Neo4jTest extends SpringBootDemoNeo4jApplicationTests { @Test public void testFindClassmates() { Map> classmates = neoService.findClassmatesGroupByLesson(); - classmates.forEach((k, v) -> log.info("因为一起上了【{}】这门课,成为同学关系的有:{}", k, JSONUtil.toJsonStr(v.stream() - .map(Student::getName) - .collect(Collectors.toList())))); + classmates.forEach((k, v) -> log.info("因为一起上了【{}】这门课,成为同学关系的有:{}", k, JSONUtil.toJsonStr(v.stream().map(Student::getName).collect(Collectors.toList())))); } /** @@ -82,8 +80,6 @@ public class Neo4jTest extends SpringBootDemoNeo4jApplicationTests { @Test public void testFindTeacherStudent() { Map> teacherStudent = neoService.findTeacherStudent(); - teacherStudent.forEach((k, v) -> log.info("【{}】教的学生有 {}", k, JSONUtil.toJsonStr(v.stream() - .map(Student::getName) - .collect(Collectors.toList())))); + teacherStudent.forEach((k, v) -> log.info("【{}】教的学生有 {}", k, JSONUtil.toJsonStr(v.stream().map(Student::getName).collect(Collectors.toList())))); } } diff --git a/demo-oauth/oauth-authorization-server/src/main/java/com/xkcoding/oauth/config/ClientLoginFailureHandler.java b/demo-oauth/oauth-authorization-server/src/main/java/com/xkcoding/oauth/config/ClientLoginFailureHandler.java index d9e0248..8fe249d 100644 --- a/demo-oauth/oauth-authorization-server/src/main/java/com/xkcoding/oauth/config/ClientLoginFailureHandler.java +++ b/demo-oauth/oauth-authorization-server/src/main/java/com/xkcoding/oauth/config/ClientLoginFailureHandler.java @@ -21,11 +21,9 @@ import java.net.URLEncoder; @Component public class ClientLoginFailureHandler implements AuthenticationFailureHandler { @Override - public void onAuthenticationFailure(HttpServletRequest request, HttpServletResponse response, - AuthenticationException exception) throws IOException { + public void onAuthenticationFailure(HttpServletRequest request, HttpServletResponse response, AuthenticationException exception) throws IOException { log.debug("Login failed!"); response.setStatus(HttpStatus.UNAUTHORIZED.value()); - response.sendRedirect("/oauth/login?error=" - + URLEncoder.encode(exception.getLocalizedMessage(), "UTF-8")); + response.sendRedirect("/oauth/login?error=" + URLEncoder.encode(exception.getLocalizedMessage(), "UTF-8")); } } diff --git a/demo-oauth/oauth-authorization-server/src/main/java/com/xkcoding/oauth/config/Oauth2AuthorizationServerConfig.java b/demo-oauth/oauth-authorization-server/src/main/java/com/xkcoding/oauth/config/Oauth2AuthorizationServerConfig.java index 9326fb5..228ec84 100644 --- a/demo-oauth/oauth-authorization-server/src/main/java/com/xkcoding/oauth/config/Oauth2AuthorizationServerConfig.java +++ b/demo-oauth/oauth-authorization-server/src/main/java/com/xkcoding/oauth/config/Oauth2AuthorizationServerConfig.java @@ -31,10 +31,7 @@ public class Oauth2AuthorizationServerConfig extends AuthorizationServerConfigur @Override public void configure(AuthorizationServerEndpointsConfigurer endpoints) { - endpoints.authenticationManager(authenticationManager) - .userDetailsService(sysUserService) - .tokenStore(tokenStore) - .accessTokenConverter(jwtAccessTokenConverter); + endpoints.authenticationManager(authenticationManager).userDetailsService(sysUserService).tokenStore(tokenStore).accessTokenConverter(jwtAccessTokenConverter); } @Override diff --git a/demo-oauth/oauth-authorization-server/src/main/java/com/xkcoding/oauth/config/WebSecurityConfig.java b/demo-oauth/oauth-authorization-server/src/main/java/com/xkcoding/oauth/config/WebSecurityConfig.java index b458ffc..c9d2531 100644 --- a/demo-oauth/oauth-authorization-server/src/main/java/com/xkcoding/oauth/config/WebSecurityConfig.java +++ b/demo-oauth/oauth-authorization-server/src/main/java/com/xkcoding/oauth/config/WebSecurityConfig.java @@ -24,20 +24,7 @@ public class WebSecurityConfig extends WebSecurityConfigurerAdapter { @Override protected void configure(HttpSecurity http) throws Exception { - http - .formLogin() - .loginPage("/oauth/login") - .failureHandler(clientLoginFailureHandler) - .loginProcessingUrl("/authorization/form") - .and() - .logout() - .logoutUrl("/oauth/logout") - .logoutSuccessHandler(clientLogoutSuccessHandler) - .and() - .authorizeRequests() - .antMatchers("/oauth/**").permitAll() - .anyRequest() - .authenticated(); + http.formLogin().loginPage("/oauth/login").failureHandler(clientLoginFailureHandler).loginProcessingUrl("/authorization/form").and().logout().logoutUrl("/oauth/logout").logoutSuccessHandler(clientLogoutSuccessHandler).and().authorizeRequests().antMatchers("/oauth/**").permitAll().anyRequest().authenticated(); } /** diff --git a/demo-oauth/oauth-authorization-server/src/main/java/com/xkcoding/oauth/config/package-info.java b/demo-oauth/oauth-authorization-server/src/main/java/com/xkcoding/oauth/config/package-info.java index 133f549..f1cc4ed 100644 --- a/demo-oauth/oauth-authorization-server/src/main/java/com/xkcoding/oauth/config/package-info.java +++ b/demo-oauth/oauth-authorization-server/src/main/java/com/xkcoding/oauth/config/package-info.java @@ -4,10 +4,10 @@ * {@link com.xkcoding.oauth.config.Oauth2AuthorizationServerConfig} * 授权服务器相关的配置,主要设置授权服务器如何读取客户端、用户信息和一些端点配置 * 可以在这里配置更多的东西,例如端点映射,token 增强等 - * + *

* {@link com.xkcoding.oauth.config.Oauth2AuthorizationTokenConfig} * 授权服务器 token 相关的配置,主要设置 jwt、加密方式等信息 - * + *

* {@link com.xkcoding.oauth.config.ClientLogoutSuccessHandler} * 资源服务器退出以后的处理。在授权码模式中,所有的客户端都需要跳转到授权服务器进行登录 * 当登录成功以后跳转到回调地址,如果用户需要登出,也要跳转到授权服务器这里进行登出 @@ -15,7 +15,6 @@ * 所以自己给登出端点加了一个 redirect_url 参数,表示登出成功以后要跳转的地址 * 这个处理器就是来完成登出成功以后的跳转操作的。 * - * * @author EchoCow * @date 2020-01-07 9:16 */ diff --git a/demo-oauth/oauth-authorization-server/src/main/java/com/xkcoding/oauth/controller/Oauth2Controller.java b/demo-oauth/oauth-authorization-server/src/main/java/com/xkcoding/oauth/controller/Oauth2Controller.java index 061c1c0..a3938fa 100644 --- a/demo-oauth/oauth-authorization-server/src/main/java/com/xkcoding/oauth/controller/Oauth2Controller.java +++ b/demo-oauth/oauth-authorization-server/src/main/java/com/xkcoding/oauth/controller/Oauth2Controller.java @@ -36,12 +36,11 @@ public class Oauth2Controller { * 退出登录 * * @param redirectUrl 退出完成后的回调地址 - * @param principal 用户信息 + * @param principal 用户信息 * @return 结果 */ @GetMapping("/logout") - public ModelAndView logoutView( - @RequestParam("redirect_url") String redirectUrl, Principal principal) { + public ModelAndView logoutView(@RequestParam("redirect_url") String redirectUrl, Principal principal) { if (Objects.isNull(principal)) { throw new ResourceAccessException("请求错误,用户尚未登录"); } diff --git a/demo-oauth/oauth-authorization-server/src/main/java/com/xkcoding/oauth/controller/package-info.java b/demo-oauth/oauth-authorization-server/src/main/java/com/xkcoding/oauth/controller/package-info.java index 1b58c71..a4c53ec 100644 --- a/demo-oauth/oauth-authorization-server/src/main/java/com/xkcoding/oauth/controller/package-info.java +++ b/demo-oauth/oauth-authorization-server/src/main/java/com/xkcoding/oauth/controller/package-info.java @@ -2,7 +2,7 @@ * 控制器。除了业务逻辑的以外,提供两个控制器来帮助完成自定义: * {@link com.xkcoding.oauth.controller.AuthorizationController} * 自定义的授权控制器,重新设置到我们的界面中去,不使用他的默认实现 - * + *

* {@link com.xkcoding.oauth.controller.Oauth2Controller} * 页面跳转的控制器,这里拿出来是因为真的可以做很多事。比如登录的时候携带点什么 * 或者退出的时候携带什么标识,都可以。 diff --git a/demo-oauth/oauth-authorization-server/src/main/java/com/xkcoding/oauth/entity/SysUser.java b/demo-oauth/oauth-authorization-server/src/main/java/com/xkcoding/oauth/entity/SysUser.java index 7888259..4a04933 100644 --- a/demo-oauth/oauth-authorization-server/src/main/java/com/xkcoding/oauth/entity/SysUser.java +++ b/demo-oauth/oauth-authorization-server/src/main/java/com/xkcoding/oauth/entity/SysUser.java @@ -47,9 +47,6 @@ public class SysUser { * 当前用户所有角色. */ @ManyToMany(fetch = FetchType.EAGER) - @JoinTable(name = "sys_user_role", - joinColumns = @JoinColumn(name = "user_id"), - inverseJoinColumns = @JoinColumn(name = "role_id") - ) + @JoinTable(name = "sys_user_role", joinColumns = @JoinColumn(name = "user_id"), inverseJoinColumns = @JoinColumn(name = "role_id")) private Set roles; } diff --git a/demo-oauth/oauth-authorization-server/src/main/java/com/xkcoding/oauth/service/impl/SysClientDetailsServiceImpl.java b/demo-oauth/oauth-authorization-server/src/main/java/com/xkcoding/oauth/service/impl/SysClientDetailsServiceImpl.java index 3721373..7741ad6 100644 --- a/demo-oauth/oauth-authorization-server/src/main/java/com/xkcoding/oauth/service/impl/SysClientDetailsServiceImpl.java +++ b/demo-oauth/oauth-authorization-server/src/main/java/com/xkcoding/oauth/service/impl/SysClientDetailsServiceImpl.java @@ -5,7 +5,10 @@ import com.xkcoding.oauth.repostiory.SysClientDetailsRepository; import com.xkcoding.oauth.service.SysClientDetailsService; import lombok.RequiredArgsConstructor; import org.springframework.security.crypto.password.PasswordEncoder; -import org.springframework.security.oauth2.provider.*; +import org.springframework.security.oauth2.provider.ClientAlreadyExistsException; +import org.springframework.security.oauth2.provider.ClientDetails; +import org.springframework.security.oauth2.provider.ClientRegistrationException; +import org.springframework.security.oauth2.provider.NoSuchClientException; import org.springframework.stereotype.Service; import java.util.List; @@ -25,14 +28,12 @@ public class SysClientDetailsServiceImpl implements SysClientDetailsService { @Override public ClientDetails loadClientByClientId(String id) throws ClientRegistrationException { - return sysClientDetailsRepository.findFirstByClientId(id) - .orElseThrow(() -> new ClientRegistrationException("Loading client exception.")); + return sysClientDetailsRepository.findFirstByClientId(id).orElseThrow(() -> new ClientRegistrationException("Loading client exception.")); } @Override public SysClientDetails findByClientId(String clientId) { - return sysClientDetailsRepository.findFirstByClientId(clientId) - .orElseThrow(() -> new ClientRegistrationException("Loading client exception.")); + return sysClientDetailsRepository.findFirstByClientId(clientId).orElseThrow(() -> new ClientRegistrationException("Loading client exception.")); } @Override @@ -46,16 +47,14 @@ public class SysClientDetailsServiceImpl implements SysClientDetailsService { @Override public void updateClientDetails(SysClientDetails clientDetails) throws NoSuchClientException { - SysClientDetails exist = sysClientDetailsRepository.findFirstByClientId(clientDetails.getClientId()) - .orElseThrow(() -> new NoSuchClientException("No such client!")); + SysClientDetails exist = sysClientDetailsRepository.findFirstByClientId(clientDetails.getClientId()).orElseThrow(() -> new NoSuchClientException("No such client!")); clientDetails.setClientSecret(exist.getClientSecret()); sysClientDetailsRepository.save(clientDetails); } @Override public void updateClientSecret(String clientId, String clientSecret) throws NoSuchClientException { - SysClientDetails exist = sysClientDetailsRepository.findFirstByClientId(clientId) - .orElseThrow(() -> new NoSuchClientException("No such client!")); + SysClientDetails exist = sysClientDetailsRepository.findFirstByClientId(clientId).orElseThrow(() -> new NoSuchClientException("No such client!")); exist.setClientSecret(passwordEncoder.encode(clientSecret)); sysClientDetailsRepository.save(exist); } diff --git a/demo-oauth/oauth-authorization-server/src/main/java/com/xkcoding/oauth/service/impl/SysUserServiceImpl.java b/demo-oauth/oauth-authorization-server/src/main/java/com/xkcoding/oauth/service/impl/SysUserServiceImpl.java index 0f1b814..68068f6 100644 --- a/demo-oauth/oauth-authorization-server/src/main/java/com/xkcoding/oauth/service/impl/SysUserServiceImpl.java +++ b/demo-oauth/oauth-authorization-server/src/main/java/com/xkcoding/oauth/service/impl/SysUserServiceImpl.java @@ -29,11 +29,8 @@ public class SysUserServiceImpl implements SysUserService { @Override public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException { - SysUser sysUser = sysUserRepository.findFirstByUsername(username) - .orElseThrow(() -> new UsernameNotFoundException("User not found!")); - List roles = sysUser.getRoles().stream() - .map(sysRole -> new SimpleGrantedAuthority(sysRole.getName())) - .collect(Collectors.toList()); + SysUser sysUser = sysUserRepository.findFirstByUsername(username).orElseThrow(() -> new UsernameNotFoundException("User not found!")); + List roles = sysUser.getRoles().stream().map(sysRole -> new SimpleGrantedAuthority(sysRole.getName())).collect(Collectors.toList()); // 在这里手动构建 UserDetails 的默认实现 return new User(sysUser.getUsername(), sysUser.getPassword(), roles); } @@ -45,8 +42,7 @@ public class SysUserServiceImpl implements SysUserService { @Override public SysUser findById(Long id) { - return sysUserRepository.findById(id) - .orElseThrow(() -> new RuntimeException("找不到用户")); + return sysUserRepository.findById(id).orElseThrow(() -> new RuntimeException("找不到用户")); } @Override diff --git a/demo-oauth/oauth-authorization-server/src/test/java/com/xkcoding/oauth/oauth/AuthorizationCodeGrantTests.java b/demo-oauth/oauth-authorization-server/src/test/java/com/xkcoding/oauth/oauth/AuthorizationCodeGrantTests.java index ff06e8a..0679dc5 100644 --- a/demo-oauth/oauth-authorization-server/src/test/java/com/xkcoding/oauth/oauth/AuthorizationCodeGrantTests.java +++ b/demo-oauth/oauth-authorization-server/src/test/java/com/xkcoding/oauth/oauth/AuthorizationCodeGrantTests.java @@ -46,15 +46,13 @@ public class AuthorizationCodeGrantTests { @Test void testCannotConnectWithoutToken() { OAuth2RestTemplate template = new OAuth2RestTemplate(resource); - assertThrows(UserRedirectRequiredException.class, - () -> template.getForObject(getUrl("/oauth/me"), String.class)); + assertThrows(UserRedirectRequiredException.class, () -> template.getForObject(getUrl("/oauth/me"), String.class)); } @Test void testAttemptedTokenAcquisitionWithNoRedirect() { AuthorizationCodeAccessTokenProvider provider = new AuthorizationCodeAccessTokenProvider(); - assertThrows(UserRedirectRequiredException.class, - () -> provider.obtainAccessToken(resource, new DefaultAccessTokenRequest())); + assertThrows(UserRedirectRequiredException.class, () -> provider.obtainAccessToken(resource, new DefaultAccessTokenRequest())); } /** @@ -80,8 +78,7 @@ public class AuthorizationCodeGrantTests { form.add("_csrf", matcher.group(1)); // 3. 登录授权并获取登录成功的 cookie - ResponseEntity response = authorizationServerInfo - .postForStatus("/authorization/form", headers, form); + ResponseEntity response = authorizationServerInfo.postForStatus("/authorization/form", headers, form); assertNotNull(response); cookie = response.getHeaders().getFirst("Set-Cookie"); headers = new HttpHeaders(); @@ -89,8 +86,7 @@ public class AuthorizationCodeGrantTests { headers.setAccept(Collections.singletonList(MediaType.ALL)); // 4. 请求到 确认授权页面 ,获取确认授权页面的 _csrf 的 value - ResponseEntity confirm = authorizationServerInfo - .getForString("/oauth/authorize?response_type=code&client_id=oauth2&redirect_uri=http://example.com&scope=READ", headers); + ResponseEntity confirm = authorizationServerInfo.getForString("/oauth/authorize?response_type=code&client_id=oauth2&redirect_uri=http://example.com&scope=READ", headers); headers = confirm.getHeaders(); // 确认过一次后,后面都会自动确认了,这里判断下是不是重定向请求 diff --git a/demo-oauth/oauth-authorization-server/src/test/java/com/xkcoding/oauth/oauth/AuthorizationServerInfo.java b/demo-oauth/oauth-authorization-server/src/test/java/com/xkcoding/oauth/oauth/AuthorizationServerInfo.java index de5a186..ff1b99e 100644 --- a/demo-oauth/oauth-authorization-server/src/test/java/com/xkcoding/oauth/oauth/AuthorizationServerInfo.java +++ b/demo-oauth/oauth-authorization-server/src/test/java/com/xkcoding/oauth/oauth/AuthorizationServerInfo.java @@ -55,8 +55,7 @@ public class AuthorizationServerInfo { HttpHeaders actualHeaders = new HttpHeaders(); actualHeaders.putAll(headers); actualHeaders.setContentType(MediaType.APPLICATION_FORM_URLENCODED); - return client.exchange(getUrl(path), HttpMethod.POST, - new HttpEntity<>(formData, actualHeaders), (Class) null); + return client.exchange(getUrl(path), HttpMethod.POST, new HttpEntity<>(formData, actualHeaders), (Class) null); } @@ -83,8 +82,7 @@ public class AuthorizationServerInfo { } builder.deleteCharAt(builder.length() - 1); - return client.execute(builder.toString(), HttpMethod.POST, requestCallback, - HttpMessage::getHeaders); + return client.execute(builder.toString(), HttpMethod.POST, requestCallback, HttpMessage::getHeaders); } private static final class NullRequestCallback implements RequestCallback { diff --git a/demo-oauth/oauth-authorization-server/src/test/java/com/xkcoding/oauth/oauth/ResourceOwnerPasswordGrantTests.java b/demo-oauth/oauth-authorization-server/src/test/java/com/xkcoding/oauth/oauth/ResourceOwnerPasswordGrantTests.java index abe19e1..2955a7b 100644 --- a/demo-oauth/oauth-authorization-server/src/test/java/com/xkcoding/oauth/oauth/ResourceOwnerPasswordGrantTests.java +++ b/demo-oauth/oauth-authorization-server/src/test/java/com/xkcoding/oauth/oauth/ResourceOwnerPasswordGrantTests.java @@ -8,7 +8,7 @@ import org.springframework.security.oauth2.common.OAuth2AccessToken; import java.util.Arrays; import static com.xkcoding.oauth.oauth.AuthorizationServerInfo.getUrl; -import static org.junit.jupiter.api.Assertions.*; +import static org.junit.jupiter.api.Assertions.assertNotNull; /** * . diff --git a/demo-oauth/oauth-resource-server/src/main/java/com/xkcoding/oauth/SpringBootDemoResourceApplication.java b/demo-oauth/oauth-resource-server/src/main/java/com/xkcoding/oauth/SpringBootDemoResourceApplication.java index fb4ac93..b8b24b4 100644 --- a/demo-oauth/oauth-resource-server/src/main/java/com/xkcoding/oauth/SpringBootDemoResourceApplication.java +++ b/demo-oauth/oauth-resource-server/src/main/java/com/xkcoding/oauth/SpringBootDemoResourceApplication.java @@ -8,8 +8,8 @@ import org.springframework.security.oauth2.config.annotation.web.configuration.E * 启动器. * * @author EchoCow - * @date 2020-01-09 11:38 * @version V1.0 + * @date 2020-01-09 11:38 */ @EnableResourceServer @SpringBootApplication diff --git a/demo-oauth/oauth-resource-server/src/main/java/com/xkcoding/oauth/config/OauthResourceServerConfig.java b/demo-oauth/oauth-resource-server/src/main/java/com/xkcoding/oauth/config/OauthResourceServerConfig.java index f221ce4..3985304 100644 --- a/demo-oauth/oauth-resource-server/src/main/java/com/xkcoding/oauth/config/OauthResourceServerConfig.java +++ b/demo-oauth/oauth-resource-server/src/main/java/com/xkcoding/oauth/config/OauthResourceServerConfig.java @@ -28,9 +28,7 @@ public class OauthResourceServerConfig extends ResourceServerConfigurerAdapter { @Override public void configure(ResourceServerSecurityConfigurer resources) { - resources - .tokenStore(tokenStore) - .resourceId(resourceServerProperties.getResourceId()); + resources.tokenStore(tokenStore).resourceId(resourceServerProperties.getResourceId()); } @Override diff --git a/demo-oauth/oauth-resource-server/src/main/java/com/xkcoding/oauth/config/OauthResourceTokenConfig.java b/demo-oauth/oauth-resource-server/src/main/java/com/xkcoding/oauth/config/OauthResourceTokenConfig.java index dd5927f..2ddebdc 100644 --- a/demo-oauth/oauth-resource-server/src/main/java/com/xkcoding/oauth/config/OauthResourceTokenConfig.java +++ b/demo-oauth/oauth-resource-server/src/main/java/com/xkcoding/oauth/config/OauthResourceTokenConfig.java @@ -62,9 +62,7 @@ public class OauthResourceTokenConfig { */ private String getPubKey() { // 如果本地没有密钥,就从授权服务器中获取 - return StringUtils.isEmpty(resourceServerProperties.getJwt().getKeyValue()) - ? getKeyFromAuthorizationServer() - : resourceServerProperties.getJwt().getKeyValue(); + return StringUtils.isEmpty(resourceServerProperties.getJwt().getKeyValue()) ? getKeyFromAuthorizationServer() : resourceServerProperties.getJwt().getKeyValue(); } /** @@ -78,8 +76,7 @@ public class OauthResourceTokenConfig { HttpHeaders httpHeaders = new HttpHeaders(); httpHeaders.add(HttpHeaders.AUTHORIZATION, encodeClient()); HttpEntity requestEntity = new HttpEntity<>(null, httpHeaders); - String pubKey = new RestTemplate() - .getForObject(resourceServerProperties.getJwt().getKeyUri(), String.class, requestEntity); + String pubKey = new RestTemplate().getForObject(resourceServerProperties.getJwt().getKeyUri(), String.class, requestEntity); try { JSONObject body = objectMapper.readValue(pubKey, JSONObject.class); log.info("Get Key From Authorization Server."); @@ -96,7 +93,6 @@ public class OauthResourceTokenConfig { * @return basic */ private String encodeClient() { - return "Basic " + Base64.getEncoder().encodeToString((resourceServerProperties.getClientId() - + ":" + resourceServerProperties.getClientSecret()).getBytes()); + return "Basic " + Base64.getEncoder().encodeToString((resourceServerProperties.getClientId() + ":" + resourceServerProperties.getClientSecret()).getBytes()); } } diff --git a/demo-oauth/oauth-resource-server/src/test/java/com/xkcoding/oauth/AuthorizationTest.java b/demo-oauth/oauth-resource-server/src/test/java/com/xkcoding/oauth/AuthorizationTest.java index 207feb6..c830f33 100644 --- a/demo-oauth/oauth-resource-server/src/test/java/com/xkcoding/oauth/AuthorizationTest.java +++ b/demo-oauth/oauth-resource-server/src/test/java/com/xkcoding/oauth/AuthorizationTest.java @@ -32,7 +32,6 @@ public class AuthorizationTest { @Test void testAccessTokenWhenPassed() { - assertNotNull(oauth2RestTemplate("admin", "123456", Collections.singletonList("READ")) - .getAccessToken()); + assertNotNull(oauth2RestTemplate("admin", "123456", Collections.singletonList("READ")).getAccessToken()); } } diff --git a/demo-oauth/oauth-resource-server/src/test/java/com/xkcoding/oauth/controller/TestControllerTest.java b/demo-oauth/oauth-resource-server/src/test/java/com/xkcoding/oauth/controller/TestControllerTest.java index 2e933b7..85090f4 100644 --- a/demo-oauth/oauth-resource-server/src/test/java/com/xkcoding/oauth/controller/TestControllerTest.java +++ b/demo-oauth/oauth-resource-server/src/test/java/com/xkcoding/oauth/controller/TestControllerTest.java @@ -32,8 +32,7 @@ public class TestControllerTest extends AuthorizationTest { ResponseEntity response = template.exchange(URL + "/admin", GET, null, String.class); assertEquals(HttpStatus.OK, response.getStatusCode()); assertEquals("ADMIN", response.getBody()); - assertThrows(OAuth2AccessDeniedException.class, - () -> template.exchange(URL + "/test", GET, null, String.class)); + assertThrows(OAuth2AccessDeniedException.class, () -> template.exchange(URL + "/test", GET, null, String.class)); } @Test @@ -43,8 +42,7 @@ public class TestControllerTest extends AuthorizationTest { ResponseEntity response = template.exchange(URL + "/test", GET, null, String.class); assertEquals(HttpStatus.OK, response.getStatusCode()); assertEquals("TEST", response.getBody()); - assertThrows(OAuth2AccessDeniedException.class, - () -> template.exchange(URL + "/admin", GET, null, String.class)); + assertThrows(OAuth2AccessDeniedException.class, () -> template.exchange(URL + "/admin", GET, null, String.class)); } @Test @@ -54,8 +52,7 @@ public class TestControllerTest extends AuthorizationTest { ResponseEntity response = template.exchange(URL + "/read", GET, null, String.class); assertEquals(HttpStatus.OK, response.getStatusCode()); assertEquals("READ", response.getBody()); - assertThrows(OAuth2AccessDeniedException.class, - () -> template.exchange(URL + "/write", GET, null, String.class)); + assertThrows(OAuth2AccessDeniedException.class, () -> template.exchange(URL + "/write", GET, null, String.class)); } @Test @@ -65,8 +62,7 @@ public class TestControllerTest extends AuthorizationTest { ResponseEntity response = template.exchange(URL + "/write", GET, null, String.class); assertEquals(HttpStatus.OK, response.getStatusCode()); assertEquals("WRITE", response.getBody()); - assertThrows(OAuth2AccessDeniedException.class, - () -> template.exchange(URL + "/read", GET, null, String.class)); + assertThrows(OAuth2AccessDeniedException.class, () -> template.exchange(URL + "/read", GET, null, String.class)); } @Test diff --git a/demo-orm-beetlsql/src/main/java/com/xkcoding/orm/beetlsql/config/BeetlConfig.java b/demo-orm-beetlsql/src/main/java/com/xkcoding/orm/beetlsql/config/BeetlConfig.java index 6ec1b5a..e070a72 100644 --- a/demo-orm-beetlsql/src/main/java/com/xkcoding/orm/beetlsql/config/BeetlConfig.java +++ b/demo-orm-beetlsql/src/main/java/com/xkcoding/orm/beetlsql/config/BeetlConfig.java @@ -22,7 +22,7 @@ public class BeetlConfig { * Beetl需要显示的配置数据源,方可启动项目,大坑,切记! */ @Bean(name = "datasource") - public DataSource getDataSource(Environment env){ + public DataSource getDataSource(Environment env) { HikariDataSource dataSource = new HikariDataSource(); dataSource.setDriverClassName(env.getProperty("spring.datasource.driver-class-name")); dataSource.setJdbcUrl(env.getProperty("spring.datasource.url")); diff --git a/demo-orm-jdbctemplate/src/main/java/com/xkcoding/orm/jdbctemplate/SpringBootDemoOrmJdbctemplateApplication.java b/demo-orm-jdbctemplate/src/main/java/com/xkcoding/orm/jdbctemplate/SpringBootDemoOrmJdbctemplateApplication.java index 292f7b7..dba7b65 100644 --- a/demo-orm-jdbctemplate/src/main/java/com/xkcoding/orm/jdbctemplate/SpringBootDemoOrmJdbctemplateApplication.java +++ b/demo-orm-jdbctemplate/src/main/java/com/xkcoding/orm/jdbctemplate/SpringBootDemoOrmJdbctemplateApplication.java @@ -14,7 +14,7 @@ import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class SpringBootDemoOrmJdbctemplateApplication { - public static void main(String[] args) { - SpringApplication.run(SpringBootDemoOrmJdbctemplateApplication.class, args); - } + public static void main(String[] args) { + SpringApplication.run(SpringBootDemoOrmJdbctemplateApplication.class, args); + } } diff --git a/demo-orm-jdbctemplate/src/main/java/com/xkcoding/orm/jdbctemplate/annotation/Column.java b/demo-orm-jdbctemplate/src/main/java/com/xkcoding/orm/jdbctemplate/annotation/Column.java index bd65b9a..0b77cdd 100644 --- a/demo-orm-jdbctemplate/src/main/java/com/xkcoding/orm/jdbctemplate/annotation/Column.java +++ b/demo-orm-jdbctemplate/src/main/java/com/xkcoding/orm/jdbctemplate/annotation/Column.java @@ -16,10 +16,10 @@ import java.lang.annotation.Target; @Retention(RetentionPolicy.RUNTIME) @Target({ElementType.FIELD}) public @interface Column { - /** - * 列名 - * - * @return 列名 - */ - String name(); + /** + * 列名 + * + * @return 列名 + */ + String name(); } diff --git a/demo-orm-jdbctemplate/src/main/java/com/xkcoding/orm/jdbctemplate/annotation/Pk.java b/demo-orm-jdbctemplate/src/main/java/com/xkcoding/orm/jdbctemplate/annotation/Pk.java index 599faa4..53c4cac 100644 --- a/demo-orm-jdbctemplate/src/main/java/com/xkcoding/orm/jdbctemplate/annotation/Pk.java +++ b/demo-orm-jdbctemplate/src/main/java/com/xkcoding/orm/jdbctemplate/annotation/Pk.java @@ -16,10 +16,10 @@ import java.lang.annotation.Target; @Retention(RetentionPolicy.RUNTIME) @Target({ElementType.FIELD}) public @interface Pk { - /** - * 自增 - * - * @return 自增主键 - */ - boolean auto() default true; + /** + * 自增 + * + * @return 自增主键 + */ + boolean auto() default true; } diff --git a/demo-orm-jdbctemplate/src/main/java/com/xkcoding/orm/jdbctemplate/annotation/Table.java b/demo-orm-jdbctemplate/src/main/java/com/xkcoding/orm/jdbctemplate/annotation/Table.java index d914e23..60528a8 100644 --- a/demo-orm-jdbctemplate/src/main/java/com/xkcoding/orm/jdbctemplate/annotation/Table.java +++ b/demo-orm-jdbctemplate/src/main/java/com/xkcoding/orm/jdbctemplate/annotation/Table.java @@ -16,10 +16,10 @@ import java.lang.annotation.Target; @Retention(RetentionPolicy.RUNTIME) @Target({ElementType.TYPE}) public @interface Table { - /** - * 表名 - * - * @return 表名 - */ - String name(); + /** + * 表名 + * + * @return 表名 + */ + String name(); } diff --git a/demo-orm-jdbctemplate/src/main/java/com/xkcoding/orm/jdbctemplate/constant/Const.java b/demo-orm-jdbctemplate/src/main/java/com/xkcoding/orm/jdbctemplate/constant/Const.java index 9b923b9..b05bedb 100644 --- a/demo-orm-jdbctemplate/src/main/java/com/xkcoding/orm/jdbctemplate/constant/Const.java +++ b/demo-orm-jdbctemplate/src/main/java/com/xkcoding/orm/jdbctemplate/constant/Const.java @@ -9,13 +9,13 @@ package com.xkcoding.orm.jdbctemplate.constant; * @date Created in 2018-10-15 10:59 */ public interface Const { - /** - * 加密盐前缀 - */ - String SALT_PREFIX = "::SpringBootDemo::"; + /** + * 加密盐前缀 + */ + String SALT_PREFIX = "::SpringBootDemo::"; - /** - * 逗号分隔符 - */ - String SEPARATOR_COMMA = ","; + /** + * 逗号分隔符 + */ + String SEPARATOR_COMMA = ","; } diff --git a/demo-orm-jdbctemplate/src/main/java/com/xkcoding/orm/jdbctemplate/controller/UserController.java b/demo-orm-jdbctemplate/src/main/java/com/xkcoding/orm/jdbctemplate/controller/UserController.java index 7c8ed7b..4171ce2 100644 --- a/demo-orm-jdbctemplate/src/main/java/com/xkcoding/orm/jdbctemplate/controller/UserController.java +++ b/demo-orm-jdbctemplate/src/main/java/com/xkcoding/orm/jdbctemplate/controller/UserController.java @@ -20,40 +20,40 @@ import java.util.List; @RestController @Slf4j public class UserController { - private final IUserService userService; - - @Autowired - public UserController(IUserService userService) { - this.userService = userService; - } - - @PostMapping("/user") - public Dict save(@RequestBody User user) { - Boolean save = userService.save(user); - return Dict.create().set("code", save ? 200 : 500).set("msg", save ? "成功" : "失败").set("data", save ? user : null); - } - - @DeleteMapping("/user/{id}") - public Dict delete(@PathVariable Long id) { - Boolean delete = userService.delete(id); - return Dict.create().set("code", delete ? 200 : 500).set("msg", delete ? "成功" : "失败"); - } - - @PutMapping("/user/{id}") - public Dict update(@RequestBody User user, @PathVariable Long id) { - Boolean update = userService.update(user, id); - return Dict.create().set("code", update ? 200 : 500).set("msg", update ? "成功" : "失败").set("data", update ? user : null); - } - - @GetMapping("/user/{id}") - public Dict getUser(@PathVariable Long id) { - User user = userService.getUser(id); - return Dict.create().set("code", 200).set("msg", "成功").set("data", user); - } - - @GetMapping("/user") - public Dict getUser(User user) { - List userList = userService.getUser(user); - return Dict.create().set("code", 200).set("msg", "成功").set("data", userList); - } + private final IUserService userService; + + @Autowired + public UserController(IUserService userService) { + this.userService = userService; + } + + @PostMapping("/user") + public Dict save(@RequestBody User user) { + Boolean save = userService.save(user); + return Dict.create().set("code", save ? 200 : 500).set("msg", save ? "成功" : "失败").set("data", save ? user : null); + } + + @DeleteMapping("/user/{id}") + public Dict delete(@PathVariable Long id) { + Boolean delete = userService.delete(id); + return Dict.create().set("code", delete ? 200 : 500).set("msg", delete ? "成功" : "失败"); + } + + @PutMapping("/user/{id}") + public Dict update(@RequestBody User user, @PathVariable Long id) { + Boolean update = userService.update(user, id); + return Dict.create().set("code", update ? 200 : 500).set("msg", update ? "成功" : "失败").set("data", update ? user : null); + } + + @GetMapping("/user/{id}") + public Dict getUser(@PathVariable Long id) { + User user = userService.getUser(id); + return Dict.create().set("code", 200).set("msg", "成功").set("data", user); + } + + @GetMapping("/user") + public Dict getUser(User user) { + List userList = userService.getUser(user); + return Dict.create().set("code", 200).set("msg", "成功").set("data", userList); + } } diff --git a/demo-orm-jdbctemplate/src/main/java/com/xkcoding/orm/jdbctemplate/dao/UserDao.java b/demo-orm-jdbctemplate/src/main/java/com/xkcoding/orm/jdbctemplate/dao/UserDao.java index f4e5e46..a1b0fbf 100644 --- a/demo-orm-jdbctemplate/src/main/java/com/xkcoding/orm/jdbctemplate/dao/UserDao.java +++ b/demo-orm-jdbctemplate/src/main/java/com/xkcoding/orm/jdbctemplate/dao/UserDao.java @@ -19,59 +19,59 @@ import java.util.List; @Repository public class UserDao extends BaseDao { - @Autowired - public UserDao(JdbcTemplate jdbcTemplate) { - super(jdbcTemplate); - } + @Autowired + public UserDao(JdbcTemplate jdbcTemplate) { + super(jdbcTemplate); + } - /** - * 保存用户 - * - * @param user 用户对象 - * @return 操作影响行数 - */ - public Integer insert(User user) { - return super.insert(user, true); - } + /** + * 保存用户 + * + * @param user 用户对象 + * @return 操作影响行数 + */ + public Integer insert(User user) { + return super.insert(user, true); + } - /** - * 根据主键删除用户 - * - * @param id 主键id - * @return 操作影响行数 - */ - public Integer delete(Long id) { - return super.deleteById(id); - } + /** + * 根据主键删除用户 + * + * @param id 主键id + * @return 操作影响行数 + */ + public Integer delete(Long id) { + return super.deleteById(id); + } - /** - * 更新用户 - * - * @param user 用户对象 - * @param id 主键id - * @return 操作影响行数 - */ - public Integer update(User user, Long id) { - return super.updateById(user, id, true); - } + /** + * 更新用户 + * + * @param user 用户对象 + * @param id 主键id + * @return 操作影响行数 + */ + public Integer update(User user, Long id) { + return super.updateById(user, id, true); + } - /** - * 根据主键获取用户 - * - * @param id 主键id - * @return id对应的用户 - */ - public User selectById(Long id) { - return super.findOneById(id); - } + /** + * 根据主键获取用户 + * + * @param id 主键id + * @return id对应的用户 + */ + public User selectById(Long id) { + return super.findOneById(id); + } - /** - * 根据查询条件获取用户列表 - * - * @param user 用户查询条件 - * @return 用户列表 - */ - public List selectUserList(User user) { - return super.findByExample(user); - } + /** + * 根据查询条件获取用户列表 + * + * @param user 用户查询条件 + * @return 用户列表 + */ + public List selectUserList(User user) { + return super.findByExample(user); + } } diff --git a/demo-orm-jdbctemplate/src/main/java/com/xkcoding/orm/jdbctemplate/dao/base/BaseDao.java b/demo-orm-jdbctemplate/src/main/java/com/xkcoding/orm/jdbctemplate/dao/base/BaseDao.java index b0952f5..563e7bd 100644 --- a/demo-orm-jdbctemplate/src/main/java/com/xkcoding/orm/jdbctemplate/dao/base/BaseDao.java +++ b/demo-orm-jdbctemplate/src/main/java/com/xkcoding/orm/jdbctemplate/dao/base/BaseDao.java @@ -35,201 +35,201 @@ import java.util.stream.Stream; */ @Slf4j public class BaseDao { - private JdbcTemplate jdbcTemplate; - private Class clazz; - - @SuppressWarnings(value = "unchecked") - public BaseDao(JdbcTemplate jdbcTemplate) { - this.jdbcTemplate = jdbcTemplate; - clazz = (Class) ((ParameterizedType) getClass().getGenericSuperclass()).getActualTypeArguments()[0]; - } - - /** - * 通用插入,自增列需要添加 {@link Pk} 注解 - * - * @param t 对象 - * @param ignoreNull 是否忽略 null 值 - * @return 操作的行数 - */ - protected Integer insert(T t, Boolean ignoreNull) { - String table = getTableName(t); - - List filterField = getField(t, ignoreNull); - - List columnList = getColumns(filterField); - - String columns = StrUtil.join(Const.SEPARATOR_COMMA, columnList); - - // 构造占位符 - String params = StrUtil.repeatAndJoin("?", columnList.size(), Const.SEPARATOR_COMMA); - - // 构造值 - Object[] values = filterField.stream().map(field -> ReflectUtil.getFieldValue(t, field)).toArray(); - - String sql = StrUtil.format("INSERT INTO {table} ({columns}) VALUES ({params})", Dict.create().set("table", table).set("columns", columns).set("params", params)); - log.debug("【执行SQL】SQL:{}", sql); - log.debug("【执行SQL】参数:{}", JSONUtil.toJsonStr(values)); - return jdbcTemplate.update(sql, values); - } - - /** - * 通用根据主键删除 - * - * @param pk 主键 - * @return 影响行数 - */ - protected Integer deleteById(P pk) { - String tableName = getTableName(); - String sql = StrUtil.format("DELETE FROM {table} where id = ?", Dict.create().set("table", tableName)); - log.debug("【执行SQL】SQL:{}", sql); - log.debug("【执行SQL】参数:{}", JSONUtil.toJsonStr(pk)); - return jdbcTemplate.update(sql, pk); - } - - /** - * 通用根据主键更新,自增列需要添加 {@link Pk} 注解 - * - * @param t 对象 - * @param pk 主键 - * @param ignoreNull 是否忽略 null 值 - * @return 操作的行数 - */ - protected Integer updateById(T t, P pk, Boolean ignoreNull) { - String tableName = getTableName(t); - - List filterField = getField(t, ignoreNull); - - List columnList = getColumns(filterField); - - List columns = columnList.stream().map(s -> StrUtil.appendIfMissing(s, " = ?")).collect(Collectors.toList()); - String params = StrUtil.join(Const.SEPARATOR_COMMA, columns); - - // 构造值 - List valueList = filterField.stream().map(field -> ReflectUtil.getFieldValue(t, field)).collect(Collectors.toList()); - valueList.add(pk); - - Object[] values = ArrayUtil.toArray(valueList, Object.class); - - String sql = StrUtil.format("UPDATE {table} SET {params} where id = ?", Dict.create().set("table", tableName).set("params", params)); - log.debug("【执行SQL】SQL:{}", sql); - log.debug("【执行SQL】参数:{}", JSONUtil.toJsonStr(values)); - return jdbcTemplate.update(sql, values); - } - - /** - * 通用根据主键查询单条记录 - * - * @param pk 主键 - * @return 单条记录 - */ - public T findOneById(P pk) { - String tableName = getTableName(); - String sql = StrUtil.format("SELECT * FROM {table} where id = ?", Dict.create().set("table", tableName)); - RowMapper rowMapper = new BeanPropertyRowMapper<>(clazz); - log.debug("【执行SQL】SQL:{}", sql); - log.debug("【执行SQL】参数:{}", JSONUtil.toJsonStr(pk)); - return jdbcTemplate.queryForObject(sql, new Object[]{pk}, rowMapper); - } - - /** - * 根据对象查询 - * - * @param t 查询条件 - * @return 对象列表 - */ - public List findByExample(T t) { - String tableName = getTableName(t); - List filterField = getField(t, true); - List columnList = getColumns(filterField); - - List columns = columnList.stream().map(s -> " and " + s + " = ? ").collect(Collectors.toList()); - - String where = StrUtil.join(" ", columns); - // 构造值 - Object[] values = filterField.stream().map(field -> ReflectUtil.getFieldValue(t, field)).toArray(); - - String sql = StrUtil.format("SELECT * FROM {table} where 1=1 {where}", Dict.create().set("table", tableName).set("where", StrUtil.isBlank(where) ? "" : where)); - log.debug("【执行SQL】SQL:{}", sql); - log.debug("【执行SQL】参数:{}", JSONUtil.toJsonStr(values)); - List> maps = jdbcTemplate.queryForList(sql, values); - List ret = CollUtil.newArrayList(); - maps.forEach(map -> ret.add(BeanUtil.fillBeanWithMap(map, ReflectUtil.newInstance(clazz), true, false))); - return ret; - } - - /** - * 获取表名 - * - * @param t 对象 - * @return 表名 - */ - private String getTableName(T t) { - Table tableAnnotation = t.getClass().getAnnotation(Table.class); - if (ObjectUtil.isNotNull(tableAnnotation)) { - return StrUtil.format("`{}`", tableAnnotation.name()); - } else { - return StrUtil.format("`{}`", t.getClass().getName().toLowerCase()); - } - } - - /** - * 获取表名 - * - * @return 表名 - */ - private String getTableName() { - Table tableAnnotation = clazz.getAnnotation(Table.class); - if (ObjectUtil.isNotNull(tableAnnotation)) { - return StrUtil.format("`{}`", tableAnnotation.name()); - } else { - return StrUtil.format("`{}`", clazz.getName().toLowerCase()); - } - } - - /** - * 获取列 - * - * @param fieldList 字段列表 - * @return 列信息列表 - */ - private List getColumns(List fieldList) { - // 构造列 - List columnList = CollUtil.newArrayList(); - for (Field field : fieldList) { - Column columnAnnotation = field.getAnnotation(Column.class); - String columnName; - if (ObjectUtil.isNotNull(columnAnnotation)) { - columnName = columnAnnotation.name(); - } else { - columnName = field.getName(); - } - columnList.add(StrUtil.format("`{}`", columnName)); - } - return columnList; - } - - /** - * 获取字段列表 {@code 过滤数据库中不存在的字段,以及自增列} - * - * @param t 对象 - * @param ignoreNull 是否忽略空值 - * @return 字段列表 - */ - private List getField(T t, Boolean ignoreNull) { - // 获取所有字段,包含父类中的字段 - Field[] fields = ReflectUtil.getFields(t.getClass()); - - // 过滤数据库中不存在的字段,以及自增列 - List filterField; - Stream fieldStream = CollUtil.toList(fields).stream().filter(field -> ObjectUtil.isNull(field.getAnnotation(Ignore.class)) || ObjectUtil.isNull(field.getAnnotation(Pk.class))); - - // 是否过滤字段值为null的字段 - if (ignoreNull) { - filterField = fieldStream.filter(field -> ObjectUtil.isNotNull(ReflectUtil.getFieldValue(t, field))).collect(Collectors.toList()); - } else { - filterField = fieldStream.collect(Collectors.toList()); - } - return filterField; - } + private JdbcTemplate jdbcTemplate; + private Class clazz; + + @SuppressWarnings(value = "unchecked") + public BaseDao(JdbcTemplate jdbcTemplate) { + this.jdbcTemplate = jdbcTemplate; + clazz = (Class) ((ParameterizedType) getClass().getGenericSuperclass()).getActualTypeArguments()[0]; + } + + /** + * 通用插入,自增列需要添加 {@link Pk} 注解 + * + * @param t 对象 + * @param ignoreNull 是否忽略 null 值 + * @return 操作的行数 + */ + protected Integer insert(T t, Boolean ignoreNull) { + String table = getTableName(t); + + List filterField = getField(t, ignoreNull); + + List columnList = getColumns(filterField); + + String columns = StrUtil.join(Const.SEPARATOR_COMMA, columnList); + + // 构造占位符 + String params = StrUtil.repeatAndJoin("?", columnList.size(), Const.SEPARATOR_COMMA); + + // 构造值 + Object[] values = filterField.stream().map(field -> ReflectUtil.getFieldValue(t, field)).toArray(); + + String sql = StrUtil.format("INSERT INTO {table} ({columns}) VALUES ({params})", Dict.create().set("table", table).set("columns", columns).set("params", params)); + log.debug("【执行SQL】SQL:{}", sql); + log.debug("【执行SQL】参数:{}", JSONUtil.toJsonStr(values)); + return jdbcTemplate.update(sql, values); + } + + /** + * 通用根据主键删除 + * + * @param pk 主键 + * @return 影响行数 + */ + protected Integer deleteById(P pk) { + String tableName = getTableName(); + String sql = StrUtil.format("DELETE FROM {table} where id = ?", Dict.create().set("table", tableName)); + log.debug("【执行SQL】SQL:{}", sql); + log.debug("【执行SQL】参数:{}", JSONUtil.toJsonStr(pk)); + return jdbcTemplate.update(sql, pk); + } + + /** + * 通用根据主键更新,自增列需要添加 {@link Pk} 注解 + * + * @param t 对象 + * @param pk 主键 + * @param ignoreNull 是否忽略 null 值 + * @return 操作的行数 + */ + protected Integer updateById(T t, P pk, Boolean ignoreNull) { + String tableName = getTableName(t); + + List filterField = getField(t, ignoreNull); + + List columnList = getColumns(filterField); + + List columns = columnList.stream().map(s -> StrUtil.appendIfMissing(s, " = ?")).collect(Collectors.toList()); + String params = StrUtil.join(Const.SEPARATOR_COMMA, columns); + + // 构造值 + List valueList = filterField.stream().map(field -> ReflectUtil.getFieldValue(t, field)).collect(Collectors.toList()); + valueList.add(pk); + + Object[] values = ArrayUtil.toArray(valueList, Object.class); + + String sql = StrUtil.format("UPDATE {table} SET {params} where id = ?", Dict.create().set("table", tableName).set("params", params)); + log.debug("【执行SQL】SQL:{}", sql); + log.debug("【执行SQL】参数:{}", JSONUtil.toJsonStr(values)); + return jdbcTemplate.update(sql, values); + } + + /** + * 通用根据主键查询单条记录 + * + * @param pk 主键 + * @return 单条记录 + */ + public T findOneById(P pk) { + String tableName = getTableName(); + String sql = StrUtil.format("SELECT * FROM {table} where id = ?", Dict.create().set("table", tableName)); + RowMapper rowMapper = new BeanPropertyRowMapper<>(clazz); + log.debug("【执行SQL】SQL:{}", sql); + log.debug("【执行SQL】参数:{}", JSONUtil.toJsonStr(pk)); + return jdbcTemplate.queryForObject(sql, new Object[]{pk}, rowMapper); + } + + /** + * 根据对象查询 + * + * @param t 查询条件 + * @return 对象列表 + */ + public List findByExample(T t) { + String tableName = getTableName(t); + List filterField = getField(t, true); + List columnList = getColumns(filterField); + + List columns = columnList.stream().map(s -> " and " + s + " = ? ").collect(Collectors.toList()); + + String where = StrUtil.join(" ", columns); + // 构造值 + Object[] values = filterField.stream().map(field -> ReflectUtil.getFieldValue(t, field)).toArray(); + + String sql = StrUtil.format("SELECT * FROM {table} where 1=1 {where}", Dict.create().set("table", tableName).set("where", StrUtil.isBlank(where) ? "" : where)); + log.debug("【执行SQL】SQL:{}", sql); + log.debug("【执行SQL】参数:{}", JSONUtil.toJsonStr(values)); + List> maps = jdbcTemplate.queryForList(sql, values); + List ret = CollUtil.newArrayList(); + maps.forEach(map -> ret.add(BeanUtil.fillBeanWithMap(map, ReflectUtil.newInstance(clazz), true, false))); + return ret; + } + + /** + * 获取表名 + * + * @param t 对象 + * @return 表名 + */ + private String getTableName(T t) { + Table tableAnnotation = t.getClass().getAnnotation(Table.class); + if (ObjectUtil.isNotNull(tableAnnotation)) { + return StrUtil.format("`{}`", tableAnnotation.name()); + } else { + return StrUtil.format("`{}`", t.getClass().getName().toLowerCase()); + } + } + + /** + * 获取表名 + * + * @return 表名 + */ + private String getTableName() { + Table tableAnnotation = clazz.getAnnotation(Table.class); + if (ObjectUtil.isNotNull(tableAnnotation)) { + return StrUtil.format("`{}`", tableAnnotation.name()); + } else { + return StrUtil.format("`{}`", clazz.getName().toLowerCase()); + } + } + + /** + * 获取列 + * + * @param fieldList 字段列表 + * @return 列信息列表 + */ + private List getColumns(List fieldList) { + // 构造列 + List columnList = CollUtil.newArrayList(); + for (Field field : fieldList) { + Column columnAnnotation = field.getAnnotation(Column.class); + String columnName; + if (ObjectUtil.isNotNull(columnAnnotation)) { + columnName = columnAnnotation.name(); + } else { + columnName = field.getName(); + } + columnList.add(StrUtil.format("`{}`", columnName)); + } + return columnList; + } + + /** + * 获取字段列表 {@code 过滤数据库中不存在的字段,以及自增列} + * + * @param t 对象 + * @param ignoreNull 是否忽略空值 + * @return 字段列表 + */ + private List getField(T t, Boolean ignoreNull) { + // 获取所有字段,包含父类中的字段 + Field[] fields = ReflectUtil.getFields(t.getClass()); + + // 过滤数据库中不存在的字段,以及自增列 + List filterField; + Stream fieldStream = CollUtil.toList(fields).stream().filter(field -> ObjectUtil.isNull(field.getAnnotation(Ignore.class)) || ObjectUtil.isNull(field.getAnnotation(Pk.class))); + + // 是否过滤字段值为null的字段 + if (ignoreNull) { + filterField = fieldStream.filter(field -> ObjectUtil.isNotNull(ReflectUtil.getFieldValue(t, field))).collect(Collectors.toList()); + } else { + filterField = fieldStream.collect(Collectors.toList()); + } + return filterField; + } } diff --git a/demo-orm-jdbctemplate/src/main/java/com/xkcoding/orm/jdbctemplate/entity/User.java b/demo-orm-jdbctemplate/src/main/java/com/xkcoding/orm/jdbctemplate/entity/User.java index 7b6ebc0..57cdb00 100644 --- a/demo-orm-jdbctemplate/src/main/java/com/xkcoding/orm/jdbctemplate/entity/User.java +++ b/demo-orm-jdbctemplate/src/main/java/com/xkcoding/orm/jdbctemplate/entity/User.java @@ -1,7 +1,7 @@ package com.xkcoding.orm.jdbctemplate.entity; -import com.xkcoding.orm.jdbctemplate.annotation.Pk; import com.xkcoding.orm.jdbctemplate.annotation.Column; +import com.xkcoding.orm.jdbctemplate.annotation.Pk; import com.xkcoding.orm.jdbctemplate.annotation.Table; import lombok.Data; @@ -19,58 +19,58 @@ import java.util.Date; @Data @Table(name = "orm_user") public class User implements Serializable { - /** - * 主键 - */ - @Pk - private Long id; + /** + * 主键 + */ + @Pk + private Long id; - /** - * 用户名 - */ - private String name; + /** + * 用户名 + */ + private String name; - /** - * 加密后的密码 - */ - private String password; + /** + * 加密后的密码 + */ + private String password; - /** - * 加密使用的盐 - */ - private String salt; + /** + * 加密使用的盐 + */ + private String salt; - /** - * 邮箱 - */ - private String email; + /** + * 邮箱 + */ + private String email; - /** - * 手机号码 - */ - @Column(name = "phone_number") - private String phoneNumber; + /** + * 手机号码 + */ + @Column(name = "phone_number") + private String phoneNumber; - /** - * 状态,-1:逻辑删除,0:禁用,1:启用 - */ - private Integer status; + /** + * 状态,-1:逻辑删除,0:禁用,1:启用 + */ + private Integer status; - /** - * 创建时间 - */ - @Column(name = "create_time") - private Date createTime; + /** + * 创建时间 + */ + @Column(name = "create_time") + private Date createTime; - /** - * 上次登录时间 - */ - @Column(name = "last_login_time") - private Date lastLoginTime; + /** + * 上次登录时间 + */ + @Column(name = "last_login_time") + private Date lastLoginTime; - /** - * 上次更新时间 - */ - @Column(name = "last_update_time") - private Date lastUpdateTime; + /** + * 上次更新时间 + */ + @Column(name = "last_update_time") + private Date lastUpdateTime; } diff --git a/demo-orm-jdbctemplate/src/main/java/com/xkcoding/orm/jdbctemplate/service/IUserService.java b/demo-orm-jdbctemplate/src/main/java/com/xkcoding/orm/jdbctemplate/service/IUserService.java index 099865c..6db2051 100644 --- a/demo-orm-jdbctemplate/src/main/java/com/xkcoding/orm/jdbctemplate/service/IUserService.java +++ b/demo-orm-jdbctemplate/src/main/java/com/xkcoding/orm/jdbctemplate/service/IUserService.java @@ -13,45 +13,45 @@ import java.util.List; * @date Created in 2018-10-15 13:51 */ public interface IUserService { - /** - * 保存用户 - * - * @param user 用户实体 - * @return 保存成功 {@code true} 保存失败 {@code false} - */ - Boolean save(User user); - - /** - * 删除用户 - * - * @param id 主键id - * @return 删除成功 {@code true} 删除失败 {@code false} - */ - Boolean delete(Long id); - - /** - * 更新用户 - * - * @param user 用户实体 - * @param id 主键id - * @return 更新成功 {@code true} 更新失败 {@code false} - */ - Boolean update(User user, Long id); - - /** - * 获取单个用户 - * - * @param id 主键id - * @return 单个用户对象 - */ - User getUser(Long id); - - /** - * 获取用户列表 - * - * @param user 用户实体 - * @return 用户列表 - */ - List getUser(User user); + /** + * 保存用户 + * + * @param user 用户实体 + * @return 保存成功 {@code true} 保存失败 {@code false} + */ + Boolean save(User user); + + /** + * 删除用户 + * + * @param id 主键id + * @return 删除成功 {@code true} 删除失败 {@code false} + */ + Boolean delete(Long id); + + /** + * 更新用户 + * + * @param user 用户实体 + * @param id 主键id + * @return 更新成功 {@code true} 更新失败 {@code false} + */ + Boolean update(User user, Long id); + + /** + * 获取单个用户 + * + * @param id 主键id + * @return 单个用户对象 + */ + User getUser(Long id); + + /** + * 获取用户列表 + * + * @param user 用户实体 + * @return 用户列表 + */ + List getUser(User user); } diff --git a/demo-orm-jdbctemplate/src/main/java/com/xkcoding/orm/jdbctemplate/service/impl/UserServiceImpl.java b/demo-orm-jdbctemplate/src/main/java/com/xkcoding/orm/jdbctemplate/service/impl/UserServiceImpl.java index 33afbc2..beee4fc 100644 --- a/demo-orm-jdbctemplate/src/main/java/com/xkcoding/orm/jdbctemplate/service/impl/UserServiceImpl.java +++ b/demo-orm-jdbctemplate/src/main/java/com/xkcoding/orm/jdbctemplate/service/impl/UserServiceImpl.java @@ -25,81 +25,81 @@ import java.util.List; */ @Service public class UserServiceImpl implements IUserService { - private final UserDao userDao; + private final UserDao userDao; - @Autowired - public UserServiceImpl(UserDao userDao) { - this.userDao = userDao; - } + @Autowired + public UserServiceImpl(UserDao userDao) { + this.userDao = userDao; + } - /** - * 保存用户 - * - * @param user 用户实体 - * @return 保存成功 {@code true} 保存失败 {@code false} - */ - @Override - public Boolean save(User user) { - String rawPass = user.getPassword(); - String salt = IdUtil.simpleUUID(); - String pass = SecureUtil.md5(rawPass + Const.SALT_PREFIX + salt); - user.setPassword(pass); - user.setSalt(salt); - return userDao.insert(user) > 0; - } + /** + * 保存用户 + * + * @param user 用户实体 + * @return 保存成功 {@code true} 保存失败 {@code false} + */ + @Override + public Boolean save(User user) { + String rawPass = user.getPassword(); + String salt = IdUtil.simpleUUID(); + String pass = SecureUtil.md5(rawPass + Const.SALT_PREFIX + salt); + user.setPassword(pass); + user.setSalt(salt); + return userDao.insert(user) > 0; + } - /** - * 删除用户 - * - * @param id 主键id - * @return 删除成功 {@code true} 删除失败 {@code false} - */ - @Override - public Boolean delete(Long id) { - return userDao.delete(id) > 0; - } + /** + * 删除用户 + * + * @param id 主键id + * @return 删除成功 {@code true} 删除失败 {@code false} + */ + @Override + public Boolean delete(Long id) { + return userDao.delete(id) > 0; + } - /** - * 更新用户 - * - * @param user 用户实体 - * @param id 主键id - * @return 更新成功 {@code true} 更新失败 {@code false} - */ - @Override - public Boolean update(User user, Long id) { - User exist = getUser(id); - if (StrUtil.isNotBlank(user.getPassword())) { - String rawPass = user.getPassword(); - String salt = IdUtil.simpleUUID(); - String pass = SecureUtil.md5(rawPass + Const.SALT_PREFIX + salt); - user.setPassword(pass); - user.setSalt(salt); - } - BeanUtil.copyProperties(user, exist, CopyOptions.create().setIgnoreNullValue(true)); - exist.setLastUpdateTime(new DateTime()); - return userDao.update(exist, id) > 0; - } + /** + * 更新用户 + * + * @param user 用户实体 + * @param id 主键id + * @return 更新成功 {@code true} 更新失败 {@code false} + */ + @Override + public Boolean update(User user, Long id) { + User exist = getUser(id); + if (StrUtil.isNotBlank(user.getPassword())) { + String rawPass = user.getPassword(); + String salt = IdUtil.simpleUUID(); + String pass = SecureUtil.md5(rawPass + Const.SALT_PREFIX + salt); + user.setPassword(pass); + user.setSalt(salt); + } + BeanUtil.copyProperties(user, exist, CopyOptions.create().setIgnoreNullValue(true)); + exist.setLastUpdateTime(new DateTime()); + return userDao.update(exist, id) > 0; + } - /** - * 获取单个用户 - * - * @param id 主键id - * @return 单个用户对象 - */ - @Override - public User getUser(Long id) { - return userDao.findOneById(id); - } + /** + * 获取单个用户 + * + * @param id 主键id + * @return 单个用户对象 + */ + @Override + public User getUser(Long id) { + return userDao.findOneById(id); + } - /** - * 获取用户列表 - * - * @param user 用户实体 - * @return 用户列表 - */ - @Override - public List getUser(User user) { - return userDao.findByExample(user); - } + /** + * 获取用户列表 + * + * @param user 用户实体 + * @return 用户列表 + */ + @Override + public List getUser(User user) { + return userDao.findByExample(user); + } } diff --git a/demo-orm-jpa/src/main/java/com/xkcoding/orm/jpa/SpringBootDemoOrmJpaApplication.java b/demo-orm-jpa/src/main/java/com/xkcoding/orm/jpa/SpringBootDemoOrmJpaApplication.java index 1a7c8c5..7592f6b 100644 --- a/demo-orm-jpa/src/main/java/com/xkcoding/orm/jpa/SpringBootDemoOrmJpaApplication.java +++ b/demo-orm-jpa/src/main/java/com/xkcoding/orm/jpa/SpringBootDemoOrmJpaApplication.java @@ -14,7 +14,7 @@ import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class SpringBootDemoOrmJpaApplication { - public static void main(String[] args) { - SpringApplication.run(SpringBootDemoOrmJpaApplication.class, args); - } + public static void main(String[] args) { + SpringApplication.run(SpringBootDemoOrmJpaApplication.class, args); + } } diff --git a/demo-orm-mybatis-mapper-page/src/test/java/com/xkcoding/orm/mybatis/MapperAndPage/mapper/UserMapperTest.java b/demo-orm-mybatis-mapper-page/src/test/java/com/xkcoding/orm/mybatis/MapperAndPage/mapper/UserMapperTest.java index 6b92040..4167636 100644 --- a/demo-orm-mybatis-mapper-page/src/test/java/com/xkcoding/orm/mybatis/MapperAndPage/mapper/UserMapperTest.java +++ b/demo-orm-mybatis-mapper-page/src/test/java/com/xkcoding/orm/mybatis/MapperAndPage/mapper/UserMapperTest.java @@ -93,7 +93,7 @@ public class UserMapperTest extends SpringBootDemoOrmMybatisMapperPageApplicatio * 测试通用Mapper - 查询单个 */ @Test - public void testQueryOne(){ + public void testQueryOne() { User user = userMapper.selectByPrimaryKey(1L); Assert.assertNotNull(user); log.debug("【user】= {}", user); diff --git a/demo-orm-mybatis-plus/src/main/java/com/xkcoding/orm/mybatis/plus/config/MybatisPlusConfig.java b/demo-orm-mybatis-plus/src/main/java/com/xkcoding/orm/mybatis/plus/config/MybatisPlusConfig.java index 6b9a595..6c04aa7 100644 --- a/demo-orm-mybatis-plus/src/main/java/com/xkcoding/orm/mybatis/plus/config/MybatisPlusConfig.java +++ b/demo-orm-mybatis-plus/src/main/java/com/xkcoding/orm/mybatis/plus/config/MybatisPlusConfig.java @@ -23,7 +23,7 @@ public class MybatisPlusConfig { * 性能分析拦截器,不建议生产使用 */ @Bean - public PerformanceInterceptor performanceInterceptor(){ + public PerformanceInterceptor performanceInterceptor() { return new PerformanceInterceptor(); } diff --git a/demo-orm-mybatis-plus/src/test/java/com/xkcoding/orm/mybatis/plus/SpringBootDemoOrmMybatisPlusApplicationTests.java b/demo-orm-mybatis-plus/src/test/java/com/xkcoding/orm/mybatis/plus/SpringBootDemoOrmMybatisPlusApplicationTests.java index 9973d2d..7a62319 100644 --- a/demo-orm-mybatis-plus/src/test/java/com/xkcoding/orm/mybatis/plus/SpringBootDemoOrmMybatisPlusApplicationTests.java +++ b/demo-orm-mybatis-plus/src/test/java/com/xkcoding/orm/mybatis/plus/SpringBootDemoOrmMybatisPlusApplicationTests.java @@ -9,8 +9,8 @@ import org.springframework.test.context.junit4.SpringRunner; @SpringBootTest public class SpringBootDemoOrmMybatisPlusApplicationTests { - @Test - public void contextLoads() { - } + @Test + public void contextLoads() { + } } diff --git a/demo-properties/src/main/java/com/xkcoding/properties/SpringBootDemoPropertiesApplication.java b/demo-properties/src/main/java/com/xkcoding/properties/SpringBootDemoPropertiesApplication.java index c2b1f01..aa5fe24 100644 --- a/demo-properties/src/main/java/com/xkcoding/properties/SpringBootDemoPropertiesApplication.java +++ b/demo-properties/src/main/java/com/xkcoding/properties/SpringBootDemoPropertiesApplication.java @@ -14,7 +14,7 @@ import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class SpringBootDemoPropertiesApplication { - public static void main(String[] args) { - SpringApplication.run(SpringBootDemoPropertiesApplication.class, args); - } + public static void main(String[] args) { + SpringApplication.run(SpringBootDemoPropertiesApplication.class, args); + } } diff --git a/demo-properties/src/main/java/com/xkcoding/properties/controller/PropertyController.java b/demo-properties/src/main/java/com/xkcoding/properties/controller/PropertyController.java index b676181..099cf1c 100644 --- a/demo-properties/src/main/java/com/xkcoding/properties/controller/PropertyController.java +++ b/demo-properties/src/main/java/com/xkcoding/properties/controller/PropertyController.java @@ -17,17 +17,17 @@ import org.springframework.web.bind.annotation.RestController; */ @RestController public class PropertyController { - private final ApplicationProperty applicationProperty; - private final DeveloperProperty developerProperty; + private final ApplicationProperty applicationProperty; + private final DeveloperProperty developerProperty; - @Autowired - public PropertyController(ApplicationProperty applicationProperty, DeveloperProperty developerProperty) { - this.applicationProperty = applicationProperty; - this.developerProperty = developerProperty; - } + @Autowired + public PropertyController(ApplicationProperty applicationProperty, DeveloperProperty developerProperty) { + this.applicationProperty = applicationProperty; + this.developerProperty = developerProperty; + } - @GetMapping("/property") - public Dict index() { - return Dict.create().set("applicationProperty", applicationProperty).set("developerProperty", developerProperty); - } + @GetMapping("/property") + public Dict index() { + return Dict.create().set("applicationProperty", applicationProperty).set("developerProperty", developerProperty); + } } diff --git a/demo-properties/src/main/java/com/xkcoding/properties/property/ApplicationProperty.java b/demo-properties/src/main/java/com/xkcoding/properties/property/ApplicationProperty.java index 8ccf55d..4c73df2 100644 --- a/demo-properties/src/main/java/com/xkcoding/properties/property/ApplicationProperty.java +++ b/demo-properties/src/main/java/com/xkcoding/properties/property/ApplicationProperty.java @@ -15,8 +15,8 @@ import org.springframework.stereotype.Component; @Data @Component public class ApplicationProperty { - @Value("${application.name}") - private String name; - @Value("${application.version}") - private String version; + @Value("${application.name}") + private String name; + @Value("${application.version}") + private String version; } diff --git a/demo-properties/src/main/java/com/xkcoding/properties/property/DeveloperProperty.java b/demo-properties/src/main/java/com/xkcoding/properties/property/DeveloperProperty.java index a226940..635319e 100644 --- a/demo-properties/src/main/java/com/xkcoding/properties/property/DeveloperProperty.java +++ b/demo-properties/src/main/java/com/xkcoding/properties/property/DeveloperProperty.java @@ -16,8 +16,8 @@ import org.springframework.stereotype.Component; @ConfigurationProperties(prefix = "developer") @Component public class DeveloperProperty { - private String name; - private String website; - private String qq; - private String phoneNumber; + private String name; + private String website; + private String qq; + private String phoneNumber; } diff --git a/demo-properties/src/test/java/com/xkcoding/properties/SpringBootDemoPropertiesApplicationTests.java b/demo-properties/src/test/java/com/xkcoding/properties/SpringBootDemoPropertiesApplicationTests.java index 7a325a7..79cdf57 100644 --- a/demo-properties/src/test/java/com/xkcoding/properties/SpringBootDemoPropertiesApplicationTests.java +++ b/demo-properties/src/test/java/com/xkcoding/properties/SpringBootDemoPropertiesApplicationTests.java @@ -9,8 +9,8 @@ import org.springframework.test.context.junit4.SpringRunner; @SpringBootTest public class SpringBootDemoPropertiesApplicationTests { - @Test - public void contextLoads() { - } + @Test + public void contextLoads() { + } } diff --git a/demo-ratelimit-redis/src/main/java/com/xkcoding/ratelimit/redis/aspect/RateLimiterAspect.java b/demo-ratelimit-redis/src/main/java/com/xkcoding/ratelimit/redis/aspect/RateLimiterAspect.java index d69b3bc..fb2aed9 100644 --- a/demo-ratelimit-redis/src/main/java/com/xkcoding/ratelimit/redis/aspect/RateLimiterAspect.java +++ b/demo-ratelimit-redis/src/main/java/com/xkcoding/ratelimit/redis/aspect/RateLimiterAspect.java @@ -54,7 +54,7 @@ public class RateLimiterAspect { String key = rateLimiter.key(); // 默认用类名+方法名做限流的 key 前缀 if (StrUtil.isBlank(key)) { - key = method.getDeclaringClass().getName()+StrUtil.DOT+method.getName(); + key = method.getDeclaringClass().getName() + StrUtil.DOT + method.getName(); } // 最终限流的 key 为 前缀 + IP地址 // TODO: 此时需要考虑局域网多用户访问的情况,因此 key 后续需要加上方法参数更加合理 diff --git a/demo-rbac-security/src/main/java/com/xkcoding/rbac/security/common/BaseException.java b/demo-rbac-security/src/main/java/com/xkcoding/rbac/security/common/BaseException.java index 24f7937..43062a3 100644 --- a/demo-rbac-security/src/main/java/com/xkcoding/rbac/security/common/BaseException.java +++ b/demo-rbac-security/src/main/java/com/xkcoding/rbac/security/common/BaseException.java @@ -14,29 +14,29 @@ import lombok.EqualsAndHashCode; @EqualsAndHashCode(callSuper = true) @Data public class BaseException extends RuntimeException { - private Integer code; - private String message; - private Object data; + private Integer code; + private String message; + private Object data; - public BaseException(Status status) { - super(status.getMessage()); - this.code = status.getCode(); - this.message = status.getMessage(); - } + public BaseException(Status status) { + super(status.getMessage()); + this.code = status.getCode(); + this.message = status.getMessage(); + } - public BaseException(Status status, Object data) { - this(status); - this.data = data; - } + public BaseException(Status status, Object data) { + this(status); + this.data = data; + } - public BaseException(Integer code, String message) { - super(message); - this.code = code; - this.message = message; - } + public BaseException(Integer code, String message) { + super(message); + this.code = code; + this.message = message; + } - public BaseException(Integer code, String message, Object data) { - this(code, message); - this.data = data; - } + public BaseException(Integer code, String message, Object data) { + this(code, message); + this.data = data; + } } diff --git a/demo-rbac-security/src/main/java/com/xkcoding/rbac/security/common/Status.java b/demo-rbac-security/src/main/java/com/xkcoding/rbac/security/common/Status.java index 192ffd3..a9f60a7 100644 --- a/demo-rbac-security/src/main/java/com/xkcoding/rbac/security/common/Status.java +++ b/demo-rbac-security/src/main/java/com/xkcoding/rbac/security/common/Status.java @@ -110,8 +110,7 @@ public enum Status implements IStatus { public static Status fromCode(Integer code) { Status[] statuses = Status.values(); for (Status status : statuses) { - if (status.getCode() - .equals(code)) { + if (status.getCode().equals(code)) { return status; } } diff --git a/demo-rbac-security/src/main/java/com/xkcoding/rbac/security/config/JwtAuthenticationFilter.java b/demo-rbac-security/src/main/java/com/xkcoding/rbac/security/config/JwtAuthenticationFilter.java index 9104961..2b57bb6 100644 --- a/demo-rbac-security/src/main/java/com/xkcoding/rbac/security/config/JwtAuthenticationFilter.java +++ b/demo-rbac-security/src/main/java/com/xkcoding/rbac/security/config/JwtAuthenticationFilter.java @@ -65,8 +65,7 @@ public class JwtAuthenticationFilter extends OncePerRequestFilter { UsernamePasswordAuthenticationToken authentication = new UsernamePasswordAuthenticationToken(userDetails, null, userDetails.getAuthorities()); authentication.setDetails(new WebAuthenticationDetailsSource().buildDetails(request)); - SecurityContextHolder.getContext() - .setAuthentication(authentication); + SecurityContextHolder.getContext().setAuthentication(authentication); filterChain.doFilter(request, response); } catch (SecurityException e) { ResponseUtil.renderJson(response, e); @@ -95,43 +94,34 @@ public class JwtAuthenticationFilter extends OncePerRequestFilter { switch (httpMethod) { case GET: - ignores.addAll(customConfig.getIgnores() - .getGet()); + ignores.addAll(customConfig.getIgnores().getGet()); break; case PUT: - ignores.addAll(customConfig.getIgnores() - .getPut()); + ignores.addAll(customConfig.getIgnores().getPut()); break; case HEAD: - ignores.addAll(customConfig.getIgnores() - .getHead()); + ignores.addAll(customConfig.getIgnores().getHead()); break; case POST: - ignores.addAll(customConfig.getIgnores() - .getPost()); + ignores.addAll(customConfig.getIgnores().getPost()); break; case PATCH: - ignores.addAll(customConfig.getIgnores() - .getPatch()); + ignores.addAll(customConfig.getIgnores().getPatch()); break; case TRACE: - ignores.addAll(customConfig.getIgnores() - .getTrace()); + ignores.addAll(customConfig.getIgnores().getTrace()); break; case DELETE: - ignores.addAll(customConfig.getIgnores() - .getDelete()); + ignores.addAll(customConfig.getIgnores().getDelete()); break; case OPTIONS: - ignores.addAll(customConfig.getIgnores() - .getOptions()); + ignores.addAll(customConfig.getIgnores().getOptions()); break; default: break; } - ignores.addAll(customConfig.getIgnores() - .getPattern()); + ignores.addAll(customConfig.getIgnores().getPattern()); if (CollUtil.isNotEmpty(ignores)) { for (String ignore : ignores) { diff --git a/demo-rbac-security/src/main/java/com/xkcoding/rbac/security/config/RbacAuthorityService.java b/demo-rbac-security/src/main/java/com/xkcoding/rbac/security/config/RbacAuthorityService.java index 555996d..ef64038 100644 --- a/demo-rbac-security/src/main/java/com/xkcoding/rbac/security/config/RbacAuthorityService.java +++ b/demo-rbac-security/src/main/java/com/xkcoding/rbac/security/config/RbacAuthorityService.java @@ -58,20 +58,17 @@ public class RbacAuthorityService { Long userId = principal.getId(); List roles = roleDao.selectByUserId(userId); - List roleIds = roles.stream() - .map(Role::getId) - .collect(Collectors.toList()); + List roleIds = roles.stream().map(Role::getId).collect(Collectors.toList()); List permissions = permissionDao.selectByRoleIdList(roleIds); //获取资源,前后端分离,所以过滤页面权限,只保留按钮权限 List btnPerms = permissions.stream() - // 过滤页面权限 - .filter(permission -> Objects.equals(permission.getType(), Consts.BUTTON)) - // 过滤 URL 为空 - .filter(permission -> StrUtil.isNotBlank(permission.getUrl())) - // 过滤 METHOD 为空 - .filter(permission -> StrUtil.isNotBlank(permission.getMethod())) - .collect(Collectors.toList()); + // 过滤页面权限 + .filter(permission -> Objects.equals(permission.getType(), Consts.BUTTON)) + // 过滤 URL 为空 + .filter(permission -> StrUtil.isNotBlank(permission.getUrl())) + // 过滤 METHOD 为空 + .filter(permission -> StrUtil.isNotBlank(permission.getMethod())).collect(Collectors.toList()); for (Permission btnPerm : btnPerms) { AntPathRequestMatcher antPathMatcher = new AntPathRequestMatcher(btnPerm.getUrl(), btnPerm.getMethod()); @@ -104,8 +101,7 @@ public class RbacAuthorityService { // 2:new AntPathRequestMatcher(uri) 这种方式不校验请求方法,只校验请求路径 AntPathRequestMatcher antPathMatcher = new AntPathRequestMatcher(uri); if (antPathMatcher.matches(request)) { - if (!urlMapping.get(uri) - .contains(currentMethod)) { + if (!urlMapping.get(uri).contains(currentMethod)) { throw new SecurityException(Status.HTTP_BAD_METHOD); } else { return; @@ -129,15 +125,11 @@ public class RbacAuthorityService { handlerMethods.forEach((k, v) -> { // 获取当前 key 下的获取所有URL - Set url = k.getPatternsCondition() - .getPatterns(); + Set url = k.getPatternsCondition().getPatterns(); RequestMethodsRequestCondition method = k.getMethodsCondition(); // 为每个URL添加所有的请求方法 - url.forEach(s -> urlMapping.putAll(s, method.getMethods() - .stream() - .map(Enum::toString) - .collect(Collectors.toList()))); + url.forEach(s -> urlMapping.putAll(s, method.getMethods().stream().map(Enum::toString).collect(Collectors.toList()))); }); return urlMapping; diff --git a/demo-rbac-security/src/main/java/com/xkcoding/rbac/security/config/WebMvcConfig.java b/demo-rbac-security/src/main/java/com/xkcoding/rbac/security/config/WebMvcConfig.java index 9e7ce13..cadddfd 100644 --- a/demo-rbac-security/src/main/java/com/xkcoding/rbac/security/config/WebMvcConfig.java +++ b/demo-rbac-security/src/main/java/com/xkcoding/rbac/security/config/WebMvcConfig.java @@ -19,9 +19,6 @@ public class WebMvcConfig implements WebMvcConfigurer { @Override public void addCorsMappings(CorsRegistry registry) { - registry.addMapping("/**") - .allowedOrigins("*") - .allowedMethods("HEAD", "OPTIONS", "GET", "POST", "PUT", "PATCH", "DELETE") - .maxAge(MAX_AGE_SECS); + registry.addMapping("/**").allowedOrigins("*").allowedMethods("HEAD", "OPTIONS", "GET", "POST", "PUT", "PATCH", "DELETE").maxAge(MAX_AGE_SECS); } } diff --git a/demo-rbac-security/src/main/java/com/xkcoding/rbac/security/controller/AuthController.java b/demo-rbac-security/src/main/java/com/xkcoding/rbac/security/controller/AuthController.java index acaa991..200587f 100644 --- a/demo-rbac-security/src/main/java/com/xkcoding/rbac/security/controller/AuthController.java +++ b/demo-rbac-security/src/main/java/com/xkcoding/rbac/security/controller/AuthController.java @@ -46,10 +46,9 @@ public class AuthController { public ApiResponse login(@Valid @RequestBody LoginRequest loginRequest) { Authentication authentication = authenticationManager.authenticate(new UsernamePasswordAuthenticationToken(loginRequest.getUsernameOrEmailOrPhone(), loginRequest.getPassword())); - SecurityContextHolder.getContext() - .setAuthentication(authentication); + SecurityContextHolder.getContext().setAuthentication(authentication); - String jwt = jwtUtil.createJWT(authentication,loginRequest.getRememberMe()); + String jwt = jwtUtil.createJWT(authentication, loginRequest.getRememberMe()); return ApiResponse.ofSuccess(new JwtResponse(jwt)); } diff --git a/demo-rbac-security/src/main/java/com/xkcoding/rbac/security/controller/MonitorController.java b/demo-rbac-security/src/main/java/com/xkcoding/rbac/security/controller/MonitorController.java index 57fcf67..1176363 100644 --- a/demo-rbac-security/src/main/java/com/xkcoding/rbac/security/controller/MonitorController.java +++ b/demo-rbac-security/src/main/java/com/xkcoding/rbac/security/controller/MonitorController.java @@ -53,7 +53,7 @@ public class MonitorController { if (CollUtil.isEmpty(names)) { throw new SecurityException(Status.PARAM_NOT_NULL); } - if (names.contains(SecurityUtil.getCurrentUsername())){ + if (names.contains(SecurityUtil.getCurrentUsername())) { throw new SecurityException(Status.KICKOUT_SELF); } monitorService.kickout(names); diff --git a/demo-rbac-security/src/main/java/com/xkcoding/rbac/security/exception/handler/GlobalExceptionHandler.java b/demo-rbac-security/src/main/java/com/xkcoding/rbac/security/exception/handler/GlobalExceptionHandler.java index 8e7d4da..1f17f07 100644 --- a/demo-rbac-security/src/main/java/com/xkcoding/rbac/security/exception/handler/GlobalExceptionHandler.java +++ b/demo-rbac-security/src/main/java/com/xkcoding/rbac/security/exception/handler/GlobalExceptionHandler.java @@ -42,14 +42,10 @@ public class GlobalExceptionHandler { return ApiResponse.ofStatus(Status.HTTP_BAD_METHOD); } else if (e instanceof MethodArgumentNotValidException) { log.error("【全局异常拦截】MethodArgumentNotValidException", e); - return ApiResponse.of(Status.BAD_REQUEST.getCode(), ((MethodArgumentNotValidException) e).getBindingResult() - .getAllErrors() - .get(0) - .getDefaultMessage(), null); + return ApiResponse.of(Status.BAD_REQUEST.getCode(), ((MethodArgumentNotValidException) e).getBindingResult().getAllErrors().get(0).getDefaultMessage(), null); } else if (e instanceof ConstraintViolationException) { log.error("【全局异常拦截】ConstraintViolationException", e); - return ApiResponse.of(Status.BAD_REQUEST.getCode(), CollUtil.getFirst(((ConstraintViolationException) e).getConstraintViolations()) - .getMessage(), null); + return ApiResponse.of(Status.BAD_REQUEST.getCode(), CollUtil.getFirst(((ConstraintViolationException) e).getConstraintViolations()).getMessage(), null); } else if (e instanceof MethodArgumentTypeMismatchException) { log.error("【全局异常拦截】MethodArgumentTypeMismatchException: 参数名 {}, 异常信息 {}", ((MethodArgumentTypeMismatchException) e).getName(), ((MethodArgumentTypeMismatchException) e).getMessage()); return ApiResponse.ofStatus(Status.PARAM_NOT_MATCH); diff --git a/demo-rbac-security/src/main/java/com/xkcoding/rbac/security/service/CustomUserDetailsService.java b/demo-rbac-security/src/main/java/com/xkcoding/rbac/security/service/CustomUserDetailsService.java index 6b03a05..6128c27 100644 --- a/demo-rbac-security/src/main/java/com/xkcoding/rbac/security/service/CustomUserDetailsService.java +++ b/demo-rbac-security/src/main/java/com/xkcoding/rbac/security/service/CustomUserDetailsService.java @@ -37,12 +37,9 @@ public class CustomUserDetailsService implements UserDetailsService { @Override public UserDetails loadUserByUsername(String usernameOrEmailOrPhone) throws UsernameNotFoundException { - User user = userDao.findByUsernameOrEmailOrPhone(usernameOrEmailOrPhone, usernameOrEmailOrPhone, usernameOrEmailOrPhone) - .orElseThrow(() -> new UsernameNotFoundException("未找到用户信息 : " + usernameOrEmailOrPhone)); + User user = userDao.findByUsernameOrEmailOrPhone(usernameOrEmailOrPhone, usernameOrEmailOrPhone, usernameOrEmailOrPhone).orElseThrow(() -> new UsernameNotFoundException("未找到用户信息 : " + usernameOrEmailOrPhone)); List roles = roleDao.selectByUserId(user.getId()); - List roleIds = roles.stream() - .map(Role::getId) - .collect(Collectors.toList()); + List roleIds = roles.stream().map(Role::getId).collect(Collectors.toList()); List permissions = permissionDao.selectByRoleIdList(roleIds); return UserPrincipal.create(user, roles, permissions); } diff --git a/demo-rbac-security/src/main/java/com/xkcoding/rbac/security/service/MonitorService.java b/demo-rbac-security/src/main/java/com/xkcoding/rbac/security/service/MonitorService.java index d2cfdfd..3acda13 100644 --- a/demo-rbac-security/src/main/java/com/xkcoding/rbac/security/service/MonitorService.java +++ b/demo-rbac-security/src/main/java/com/xkcoding/rbac/security/service/MonitorService.java @@ -46,9 +46,7 @@ public class MonitorService { Long total = keys.getTotal(); // 根据 redis 中键获取用户名列表 - List usernameList = rows.stream() - .map(s -> StrUtil.subAfter(s, Consts.REDIS_JWT_KEY_PREFIX, true)) - .collect(Collectors.toList()); + List usernameList = rows.stream().map(s -> StrUtil.subAfter(s, Consts.REDIS_JWT_KEY_PREFIX, true)).collect(Collectors.toList()); // 根据用户名查询用户信息 List userList = userDao.findByUsernameIn(usernameList); @@ -66,19 +64,16 @@ public class MonitorService { */ public void kickout(List names) { // 清除 Redis 中的 JWT 信息 - List redisKeys = names.parallelStream() - .map(s -> Consts.REDIS_JWT_KEY_PREFIX + s) - .collect(Collectors.toList()); + List redisKeys = names.parallelStream().map(s -> Consts.REDIS_JWT_KEY_PREFIX + s).collect(Collectors.toList()); redisUtil.delete(redisKeys); // 获取当前用户名 String currentUsername = SecurityUtil.getCurrentUsername(); - names.parallelStream() - .forEach(name -> { - // TODO: 通知被踢出的用户已被当前登录用户踢出, - // 后期考虑使用 websocket 实现,具体伪代码实现如下。 - // String message = "您已被用户【" + currentUsername + "】手动下线!"; - log.debug("用户【{}】被用户【{}】手动下线!", name, currentUsername); - }); + names.parallelStream().forEach(name -> { + // TODO: 通知被踢出的用户已被当前登录用户踢出, + // 后期考虑使用 websocket 实现,具体伪代码实现如下。 + // String message = "您已被用户【" + currentUsername + "】手动下线!"; + log.debug("用户【{}】被用户【{}】手动下线!", name, currentUsername); + }); } } diff --git a/demo-rbac-security/src/main/java/com/xkcoding/rbac/security/util/JwtUtil.java b/demo-rbac-security/src/main/java/com/xkcoding/rbac/security/util/JwtUtil.java index 387b1c8..1a5b366 100644 --- a/demo-rbac-security/src/main/java/com/xkcoding/rbac/security/util/JwtUtil.java +++ b/demo-rbac-security/src/main/java/com/xkcoding/rbac/security/util/JwtUtil.java @@ -53,13 +53,7 @@ public class JwtUtil { */ public String createJWT(Boolean rememberMe, Long id, String subject, List roles, Collection authorities) { Date now = new Date(); - JwtBuilder builder = Jwts.builder() - .setId(id.toString()) - .setSubject(subject) - .setIssuedAt(now) - .signWith(SignatureAlgorithm.HS256, jwtConfig.getKey()) - .claim("roles", roles) - .claim("authorities", authorities); + JwtBuilder builder = Jwts.builder().setId(id.toString()).setSubject(subject).setIssuedAt(now).signWith(SignatureAlgorithm.HS256, jwtConfig.getKey()).claim("roles", roles).claim("authorities", authorities); // 设置过期时间 Long ttl = rememberMe ? jwtConfig.getRemember() : jwtConfig.getTtl(); @@ -69,8 +63,7 @@ public class JwtUtil { String jwt = builder.compact(); // 将生成的JWT保存至Redis - stringRedisTemplate.opsForValue() - .set(Consts.REDIS_JWT_KEY_PREFIX + subject, jwt, ttl, TimeUnit.MILLISECONDS); + stringRedisTemplate.opsForValue().set(Consts.REDIS_JWT_KEY_PREFIX + subject, jwt, ttl, TimeUnit.MILLISECONDS); return jwt; } @@ -94,10 +87,7 @@ public class JwtUtil { */ public Claims parseJWT(String jwt) { try { - Claims claims = Jwts.parser() - .setSigningKey(jwtConfig.getKey()) - .parseClaimsJws(jwt) - .getBody(); + Claims claims = Jwts.parser().setSigningKey(jwtConfig.getKey()).parseClaimsJws(jwt).getBody(); String username = claims.getSubject(); String redisKey = Consts.REDIS_JWT_KEY_PREFIX + username; @@ -109,8 +99,7 @@ public class JwtUtil { } // 校验redis中的JWT是否与当前的一致,不一致则代表用户已注销/用户在不同设备登录,均代表JWT已过期 - String redisToken = stringRedisTemplate.opsForValue() - .get(redisKey); + String redisToken = stringRedisTemplate.opsForValue().get(redisKey); if (!StrUtil.equals(jwt, redisToken)) { throw new SecurityException(Status.TOKEN_OUT_OF_CTRL); } diff --git a/demo-rbac-security/src/main/java/com/xkcoding/rbac/security/util/RedisUtil.java b/demo-rbac-security/src/main/java/com/xkcoding/rbac/security/util/RedisUtil.java index 21402d7..3a7c842 100644 --- a/demo-rbac-security/src/main/java/com/xkcoding/rbac/security/util/RedisUtil.java +++ b/demo-rbac-security/src/main/java/com/xkcoding/rbac/security/util/RedisUtil.java @@ -38,9 +38,7 @@ public class RedisUtil { * @return 分页获取指定格式key */ public PageResult findKeysForPage(String patternKey, int currentPage, int pageSize) { - ScanOptions options = ScanOptions.scanOptions() - .match(patternKey) - .build(); + ScanOptions options = ScanOptions.scanOptions().match(patternKey).build(); RedisConnectionFactory factory = stringRedisTemplate.getConnectionFactory(); RedisConnection rc = factory.getConnection(); Cursor cursor = rc.scan(options); diff --git a/demo-rbac-security/src/main/java/com/xkcoding/rbac/security/util/ResponseUtil.java b/demo-rbac-security/src/main/java/com/xkcoding/rbac/security/util/ResponseUtil.java index 73b1d28..a4e8500 100644 --- a/demo-rbac-security/src/main/java/com/xkcoding/rbac/security/util/ResponseUtil.java +++ b/demo-rbac-security/src/main/java/com/xkcoding/rbac/security/util/ResponseUtil.java @@ -37,8 +37,7 @@ public class ResponseUtil { // FIXME: hutool 的 BUG:JSONUtil.toJsonStr() // 将JSON转为String的时候,忽略null值的时候转成的String存在错误 - response.getWriter() - .write(JSONUtil.toJsonStr(new JSONObject(ApiResponse.ofStatus(status, data), false))); + response.getWriter().write(JSONUtil.toJsonStr(new JSONObject(ApiResponse.ofStatus(status, data), false))); } catch (IOException e) { log.error("Response写出JSON异常,", e); } @@ -59,8 +58,7 @@ public class ResponseUtil { // FIXME: hutool 的 BUG:JSONUtil.toJsonStr() // 将JSON转为String的时候,忽略null值的时候转成的String存在错误 - response.getWriter() - .write(JSONUtil.toJsonStr(new JSONObject(ApiResponse.ofException(exception), false))); + response.getWriter().write(JSONUtil.toJsonStr(new JSONObject(ApiResponse.ofException(exception), false))); } catch (IOException e) { log.error("Response写出JSON异常,", e); } diff --git a/demo-rbac-security/src/main/java/com/xkcoding/rbac/security/util/SecurityUtil.java b/demo-rbac-security/src/main/java/com/xkcoding/rbac/security/util/SecurityUtil.java index 8b73ed1..be3fde6 100644 --- a/demo-rbac-security/src/main/java/com/xkcoding/rbac/security/util/SecurityUtil.java +++ b/demo-rbac-security/src/main/java/com/xkcoding/rbac/security/util/SecurityUtil.java @@ -31,9 +31,7 @@ public class SecurityUtil { * @return 当前登录用户信息,匿名登录时,为null */ public static UserPrincipal getCurrentUser() { - Object userInfo = SecurityContextHolder.getContext() - .getAuthentication() - .getPrincipal(); + Object userInfo = SecurityContextHolder.getContext().getAuthentication().getPrincipal(); if (userInfo instanceof UserDetails) { return (UserPrincipal) userInfo; } diff --git a/demo-rbac-security/src/main/java/com/xkcoding/rbac/security/vo/UserPrincipal.java b/demo-rbac-security/src/main/java/com/xkcoding/rbac/security/vo/UserPrincipal.java index 88ebd12..1cf9c41 100644 --- a/demo-rbac-security/src/main/java/com/xkcoding/rbac/security/vo/UserPrincipal.java +++ b/demo-rbac-security/src/main/java/com/xkcoding/rbac/security/vo/UserPrincipal.java @@ -97,14 +97,9 @@ public class UserPrincipal implements UserDetails { private Collection authorities; public static UserPrincipal create(User user, List roles, List permissions) { - List roleNames = roles.stream() - .map(Role::getName) - .collect(Collectors.toList()); - - List authorities = permissions.stream() - .filter(permission -> StrUtil.isNotBlank(permission.getPermission())) - .map(permission -> new SimpleGrantedAuthority(permission.getPermission())) - .collect(Collectors.toList()); + List roleNames = roles.stream().map(Role::getName).collect(Collectors.toList()); + + List authorities = permissions.stream().filter(permission -> StrUtil.isNotBlank(permission.getPermission())).map(permission -> new SimpleGrantedAuthority(permission.getPermission())).collect(Collectors.toList()); return new UserPrincipal(user.getId(), user.getUsername(), user.getPassword(), user.getNickname(), user.getPhone(), user.getEmail(), user.getBirthday(), user.getSex(), user.getStatus(), user.getCreateTime(), user.getUpdateTime(), roleNames, authorities); } diff --git a/demo-rbac-security/src/test/java/com/xkcoding/rbac/security/repository/DataInitTest.java b/demo-rbac-security/src/test/java/com/xkcoding/rbac/security/repository/DataInitTest.java index 3dab200..b54f98c 100644 --- a/demo-rbac-security/src/test/java/com/xkcoding/rbac/security/repository/DataInitTest.java +++ b/demo-rbac-security/src/test/java/com/xkcoding/rbac/security/repository/DataInitTest.java @@ -125,8 +125,7 @@ public class DataInitTest extends SpringBootDemoRbacSecurityApplicationTests { user.setUsername(isAdmin ? "admin" : "user"); user.setNickname(isAdmin ? "管理员" : "普通用户"); user.setPassword(encoder.encode("123456")); - user.setBirthday(DateTime.of("1994-11-22", "yyyy-MM-dd") - .getTime()); + user.setBirthday(DateTime.of("1994-11-22", "yyyy-MM-dd").getTime()); user.setEmail((isAdmin ? "admin" : "user") + "@xkcoding.com"); user.setPhone(isAdmin ? "17300000000" : "17300001111"); user.setSex(1); diff --git a/demo-swagger/src/main/java/com/xkcoding/swagger/config/Swagger2Config.java b/demo-swagger/src/main/java/com/xkcoding/swagger/config/Swagger2Config.java index b0a9d3c..6bc94ff 100644 --- a/demo-swagger/src/main/java/com/xkcoding/swagger/config/Swagger2Config.java +++ b/demo-swagger/src/main/java/com/xkcoding/swagger/config/Swagger2Config.java @@ -25,19 +25,11 @@ public class Swagger2Config { @Bean public Docket createRestApi() { - return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo()) - .select() - .apis(RequestHandlerSelectors.basePackage("com.xkcoding.swagger.controller")) - .paths(PathSelectors.any()) - .build(); + return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo()).select().apis(RequestHandlerSelectors.basePackage("com.xkcoding.swagger.controller")).paths(PathSelectors.any()).build(); } private ApiInfo apiInfo() { - return new ApiInfoBuilder().title("spring-boot-demo") - .description("这是一个简单的 Swagger API 演示") - .contact(new Contact("Yangkai.Shen", "http://xkcoding.com", "237497819@qq.com")) - .version("1.0.0-SNAPSHOT") - .build(); + return new ApiInfoBuilder().title("spring-boot-demo").description("这是一个简单的 Swagger API 演示").contact(new Contact("Yangkai.Shen", "http://xkcoding.com", "237497819@qq.com")).version("1.0.0-SNAPSHOT").build(); } } diff --git a/demo-swagger/src/main/java/com/xkcoding/swagger/controller/UserController.java b/demo-swagger/src/main/java/com/xkcoding/swagger/controller/UserController.java index bbf71a2..369f6f7 100644 --- a/demo-swagger/src/main/java/com/xkcoding/swagger/controller/UserController.java +++ b/demo-swagger/src/main/java/com/xkcoding/swagger/controller/UserController.java @@ -32,10 +32,7 @@ public class UserController { @ApiImplicitParams({@ApiImplicitParam(name = "username", value = "用户名", dataType = DataType.STRING, paramType = ParamType.QUERY, defaultValue = "xxx")}) public ApiResponse getByUserName(String username) { log.info("多个参数用 @ApiImplicitParams"); - return ApiResponse.builder().code(200) - .message("操作成功") - .data(new User(1, username, "JAVA")) - .build(); + return ApiResponse.builder().code(200).message("操作成功").data(new User(1, username, "JAVA")).build(); } @GetMapping("/{id}") @@ -43,10 +40,7 @@ public class UserController { @ApiImplicitParams({@ApiImplicitParam(name = "id", value = "用户编号", dataType = DataType.INT, paramType = ParamType.PATH)}) public ApiResponse get(@PathVariable Integer id) { log.info("单个参数用 @ApiImplicitParam"); - return ApiResponse.builder().code(200) - .message("操作成功") - .data(new User(id, "u1", "p1")) - .build(); + return ApiResponse.builder().code(200).message("操作成功").data(new User(id, "u1", "p1")).build(); } @DeleteMapping("/{id}") diff --git a/demo-template-beetl/src/main/java/com/xkcoding/template/beetl/SpringBootDemoTemplateBeetlApplication.java b/demo-template-beetl/src/main/java/com/xkcoding/template/beetl/SpringBootDemoTemplateBeetlApplication.java index f7fc8cb..9127777 100644 --- a/demo-template-beetl/src/main/java/com/xkcoding/template/beetl/SpringBootDemoTemplateBeetlApplication.java +++ b/demo-template-beetl/src/main/java/com/xkcoding/template/beetl/SpringBootDemoTemplateBeetlApplication.java @@ -14,7 +14,7 @@ import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class SpringBootDemoTemplateBeetlApplication { - public static void main(String[] args) { - SpringApplication.run(SpringBootDemoTemplateBeetlApplication.class, args); - } + public static void main(String[] args) { + SpringApplication.run(SpringBootDemoTemplateBeetlApplication.class, args); + } } diff --git a/demo-template-beetl/src/main/java/com/xkcoding/template/beetl/controller/IndexController.java b/demo-template-beetl/src/main/java/com/xkcoding/template/beetl/controller/IndexController.java index 4f6f000..c710f7a 100644 --- a/demo-template-beetl/src/main/java/com/xkcoding/template/beetl/controller/IndexController.java +++ b/demo-template-beetl/src/main/java/com/xkcoding/template/beetl/controller/IndexController.java @@ -21,18 +21,18 @@ import javax.servlet.http.HttpServletRequest; @Slf4j public class IndexController { - @GetMapping(value = {"", "/"}) - public ModelAndView index(HttpServletRequest request) { - ModelAndView mv = new ModelAndView(); + @GetMapping(value = {"", "/"}) + public ModelAndView index(HttpServletRequest request) { + ModelAndView mv = new ModelAndView(); - User user = (User) request.getSession().getAttribute("user"); - if (ObjectUtil.isNull(user)) { - mv.setViewName("redirect:/user/login"); - } else { - mv.setViewName("page/index.btl"); - mv.addObject(user); - } + User user = (User) request.getSession().getAttribute("user"); + if (ObjectUtil.isNull(user)) { + mv.setViewName("redirect:/user/login"); + } else { + mv.setViewName("page/index.btl"); + mv.addObject(user); + } - return mv; - } + return mv; + } } diff --git a/demo-template-beetl/src/main/java/com/xkcoding/template/beetl/controller/UserController.java b/demo-template-beetl/src/main/java/com/xkcoding/template/beetl/controller/UserController.java index 272676b..385a5f9 100644 --- a/demo-template-beetl/src/main/java/com/xkcoding/template/beetl/controller/UserController.java +++ b/demo-template-beetl/src/main/java/com/xkcoding/template/beetl/controller/UserController.java @@ -22,19 +22,19 @@ import javax.servlet.http.HttpServletRequest; @RequestMapping("/user") @Slf4j public class UserController { - @PostMapping("/login") - public ModelAndView login(User user, HttpServletRequest request) { - ModelAndView mv = new ModelAndView(); + @PostMapping("/login") + public ModelAndView login(User user, HttpServletRequest request) { + ModelAndView mv = new ModelAndView(); - mv.addObject(user); - mv.setViewName("redirect:/"); + mv.addObject(user); + mv.setViewName("redirect:/"); - request.getSession().setAttribute("user", user); - return mv; - } + request.getSession().setAttribute("user", user); + return mv; + } - @GetMapping("/login") - public ModelAndView login() { - return new ModelAndView("page/login.btl"); - } + @GetMapping("/login") + public ModelAndView login() { + return new ModelAndView("page/login.btl"); + } } diff --git a/demo-template-beetl/src/main/java/com/xkcoding/template/beetl/model/User.java b/demo-template-beetl/src/main/java/com/xkcoding/template/beetl/model/User.java index fc706ed..d19b361 100644 --- a/demo-template-beetl/src/main/java/com/xkcoding/template/beetl/model/User.java +++ b/demo-template-beetl/src/main/java/com/xkcoding/template/beetl/model/User.java @@ -12,6 +12,6 @@ import lombok.Data; */ @Data public class User { - private String name; - private String password; + private String name; + private String password; } diff --git a/demo-template-beetl/src/test/java/com/xkcoding/template/beetl/SpringBootDemoTemplateBeetlApplicationTests.java b/demo-template-beetl/src/test/java/com/xkcoding/template/beetl/SpringBootDemoTemplateBeetlApplicationTests.java index fa2a35f..4952bfd 100644 --- a/demo-template-beetl/src/test/java/com/xkcoding/template/beetl/SpringBootDemoTemplateBeetlApplicationTests.java +++ b/demo-template-beetl/src/test/java/com/xkcoding/template/beetl/SpringBootDemoTemplateBeetlApplicationTests.java @@ -9,8 +9,8 @@ import org.springframework.test.context.junit4.SpringRunner; @SpringBootTest public class SpringBootDemoTemplateBeetlApplicationTests { - @Test - public void contextLoads() { - } + @Test + public void contextLoads() { + } } diff --git a/demo-template-enjoy/src/main/java/com/xkcoding/template/enjoy/SpringBootDemoTemplateEnjoyApplication.java b/demo-template-enjoy/src/main/java/com/xkcoding/template/enjoy/SpringBootDemoTemplateEnjoyApplication.java index a1db5d4..79dc600 100644 --- a/demo-template-enjoy/src/main/java/com/xkcoding/template/enjoy/SpringBootDemoTemplateEnjoyApplication.java +++ b/demo-template-enjoy/src/main/java/com/xkcoding/template/enjoy/SpringBootDemoTemplateEnjoyApplication.java @@ -14,7 +14,7 @@ import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class SpringBootDemoTemplateEnjoyApplication { - public static void main(String[] args) { - SpringApplication.run(SpringBootDemoTemplateEnjoyApplication.class, args); - } + public static void main(String[] args) { + SpringApplication.run(SpringBootDemoTemplateEnjoyApplication.class, args); + } } diff --git a/demo-template-enjoy/src/main/java/com/xkcoding/template/enjoy/config/EnjoyConfig.java b/demo-template-enjoy/src/main/java/com/xkcoding/template/enjoy/config/EnjoyConfig.java index 817cf3c..d7d863b 100644 --- a/demo-template-enjoy/src/main/java/com/xkcoding/template/enjoy/config/EnjoyConfig.java +++ b/demo-template-enjoy/src/main/java/com/xkcoding/template/enjoy/config/EnjoyConfig.java @@ -15,21 +15,21 @@ import org.springframework.context.annotation.Configuration; */ @Configuration public class EnjoyConfig { - @Bean(name = "jfinalViewResolver") - public JFinalViewResolver getJFinalViewResolver() { - JFinalViewResolver jfr = new JFinalViewResolver(); - // setDevMode 配置放在最前面 - jfr.setDevMode(true); - // 使用 ClassPathSourceFactory 从 class path 与 jar 包中加载模板文件 - jfr.setSourceFactory(new ClassPathSourceFactory()); - // 在使用 ClassPathSourceFactory 时要使用 setBaseTemplatePath - // 代替 jfr.setPrefix("/view/") - JFinalViewResolver.engine.setBaseTemplatePath("/templates/"); + @Bean(name = "jfinalViewResolver") + public JFinalViewResolver getJFinalViewResolver() { + JFinalViewResolver jfr = new JFinalViewResolver(); + // setDevMode 配置放在最前面 + jfr.setDevMode(true); + // 使用 ClassPathSourceFactory 从 class path 与 jar 包中加载模板文件 + jfr.setSourceFactory(new ClassPathSourceFactory()); + // 在使用 ClassPathSourceFactory 时要使用 setBaseTemplatePath + // 代替 jfr.setPrefix("/view/") + JFinalViewResolver.engine.setBaseTemplatePath("/templates/"); - jfr.setSessionInView(true); - jfr.setSuffix(".html"); - jfr.setContentType("text/html;charset=UTF-8"); - jfr.setOrder(0); - return jfr; - } + jfr.setSessionInView(true); + jfr.setSuffix(".html"); + jfr.setContentType("text/html;charset=UTF-8"); + jfr.setOrder(0); + return jfr; + } } diff --git a/demo-template-enjoy/src/main/java/com/xkcoding/template/enjoy/controller/IndexController.java b/demo-template-enjoy/src/main/java/com/xkcoding/template/enjoy/controller/IndexController.java index 46b9380..35f9df2 100644 --- a/demo-template-enjoy/src/main/java/com/xkcoding/template/enjoy/controller/IndexController.java +++ b/demo-template-enjoy/src/main/java/com/xkcoding/template/enjoy/controller/IndexController.java @@ -21,18 +21,18 @@ import javax.servlet.http.HttpServletRequest; @Slf4j public class IndexController { - @GetMapping(value = {"", "/"}) - public ModelAndView index(HttpServletRequest request) { - ModelAndView mv = new ModelAndView(); + @GetMapping(value = {"", "/"}) + public ModelAndView index(HttpServletRequest request) { + ModelAndView mv = new ModelAndView(); - User user = (User) request.getSession().getAttribute("user"); - if (ObjectUtil.isNull(user)) { - mv.setViewName("redirect:/user/login"); - } else { - mv.setViewName("page/index"); - mv.addObject(user); - } + User user = (User) request.getSession().getAttribute("user"); + if (ObjectUtil.isNull(user)) { + mv.setViewName("redirect:/user/login"); + } else { + mv.setViewName("page/index"); + mv.addObject(user); + } - return mv; - } + return mv; + } } diff --git a/demo-template-enjoy/src/main/java/com/xkcoding/template/enjoy/controller/UserController.java b/demo-template-enjoy/src/main/java/com/xkcoding/template/enjoy/controller/UserController.java index e6afad9..76d7630 100644 --- a/demo-template-enjoy/src/main/java/com/xkcoding/template/enjoy/controller/UserController.java +++ b/demo-template-enjoy/src/main/java/com/xkcoding/template/enjoy/controller/UserController.java @@ -22,19 +22,19 @@ import javax.servlet.http.HttpServletRequest; @RequestMapping("/user") @Slf4j public class UserController { - @PostMapping("/login") - public ModelAndView login(User user, HttpServletRequest request) { - ModelAndView mv = new ModelAndView(); + @PostMapping("/login") + public ModelAndView login(User user, HttpServletRequest request) { + ModelAndView mv = new ModelAndView(); - mv.addObject(user); - mv.setViewName("redirect:/"); + mv.addObject(user); + mv.setViewName("redirect:/"); - request.getSession().setAttribute("user", user); - return mv; - } + request.getSession().setAttribute("user", user); + return mv; + } - @GetMapping("/login") - public ModelAndView login() { - return new ModelAndView("page/login"); - } + @GetMapping("/login") + public ModelAndView login() { + return new ModelAndView("page/login"); + } } diff --git a/demo-template-enjoy/src/main/java/com/xkcoding/template/enjoy/model/User.java b/demo-template-enjoy/src/main/java/com/xkcoding/template/enjoy/model/User.java index af7c813..bdd9896 100644 --- a/demo-template-enjoy/src/main/java/com/xkcoding/template/enjoy/model/User.java +++ b/demo-template-enjoy/src/main/java/com/xkcoding/template/enjoy/model/User.java @@ -12,6 +12,6 @@ import lombok.Data; */ @Data public class User { - private String name; - private String password; + private String name; + private String password; } diff --git a/demo-template-enjoy/src/test/java/com/xkcoding/template/enjoy/SpringBootDemoTemplateEnjoyApplicationTests.java b/demo-template-enjoy/src/test/java/com/xkcoding/template/enjoy/SpringBootDemoTemplateEnjoyApplicationTests.java index 476c25d..69f9ea4 100644 --- a/demo-template-enjoy/src/test/java/com/xkcoding/template/enjoy/SpringBootDemoTemplateEnjoyApplicationTests.java +++ b/demo-template-enjoy/src/test/java/com/xkcoding/template/enjoy/SpringBootDemoTemplateEnjoyApplicationTests.java @@ -9,8 +9,8 @@ import org.springframework.test.context.junit4.SpringRunner; @SpringBootTest public class SpringBootDemoTemplateEnjoyApplicationTests { - @Test - public void contextLoads() { - } + @Test + public void contextLoads() { + } } diff --git a/demo-template-freemarker/src/main/java/com/xkcoding/template/freemarker/SpringBootDemoTemplateFreemarkerApplication.java b/demo-template-freemarker/src/main/java/com/xkcoding/template/freemarker/SpringBootDemoTemplateFreemarkerApplication.java index 735fce7..f2dd0fd 100644 --- a/demo-template-freemarker/src/main/java/com/xkcoding/template/freemarker/SpringBootDemoTemplateFreemarkerApplication.java +++ b/demo-template-freemarker/src/main/java/com/xkcoding/template/freemarker/SpringBootDemoTemplateFreemarkerApplication.java @@ -14,7 +14,7 @@ import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class SpringBootDemoTemplateFreemarkerApplication { - public static void main(String[] args) { - SpringApplication.run(SpringBootDemoTemplateFreemarkerApplication.class, args); - } + public static void main(String[] args) { + SpringApplication.run(SpringBootDemoTemplateFreemarkerApplication.class, args); + } } diff --git a/demo-template-freemarker/src/main/java/com/xkcoding/template/freemarker/controller/IndexController.java b/demo-template-freemarker/src/main/java/com/xkcoding/template/freemarker/controller/IndexController.java index 4742535..c315e06 100644 --- a/demo-template-freemarker/src/main/java/com/xkcoding/template/freemarker/controller/IndexController.java +++ b/demo-template-freemarker/src/main/java/com/xkcoding/template/freemarker/controller/IndexController.java @@ -21,18 +21,18 @@ import javax.servlet.http.HttpServletRequest; @Slf4j public class IndexController { - @GetMapping(value = {"", "/"}) - public ModelAndView index(HttpServletRequest request) { - ModelAndView mv = new ModelAndView(); + @GetMapping(value = {"", "/"}) + public ModelAndView index(HttpServletRequest request) { + ModelAndView mv = new ModelAndView(); - User user = (User) request.getSession().getAttribute("user"); - if (ObjectUtil.isNull(user)) { - mv.setViewName("redirect:/user/login"); - } else { - mv.setViewName("page/index"); - mv.addObject(user); - } + User user = (User) request.getSession().getAttribute("user"); + if (ObjectUtil.isNull(user)) { + mv.setViewName("redirect:/user/login"); + } else { + mv.setViewName("page/index"); + mv.addObject(user); + } - return mv; - } + return mv; + } } diff --git a/demo-template-freemarker/src/main/java/com/xkcoding/template/freemarker/controller/UserController.java b/demo-template-freemarker/src/main/java/com/xkcoding/template/freemarker/controller/UserController.java index 93b2fe7..b9e6f5d 100644 --- a/demo-template-freemarker/src/main/java/com/xkcoding/template/freemarker/controller/UserController.java +++ b/demo-template-freemarker/src/main/java/com/xkcoding/template/freemarker/controller/UserController.java @@ -22,19 +22,19 @@ import javax.servlet.http.HttpServletRequest; @RequestMapping("/user") @Slf4j public class UserController { - @PostMapping("/login") - public ModelAndView login(User user, HttpServletRequest request) { - ModelAndView mv = new ModelAndView(); + @PostMapping("/login") + public ModelAndView login(User user, HttpServletRequest request) { + ModelAndView mv = new ModelAndView(); - mv.addObject(user); - mv.setViewName("redirect:/"); + mv.addObject(user); + mv.setViewName("redirect:/"); - request.getSession().setAttribute("user", user); - return mv; - } + request.getSession().setAttribute("user", user); + return mv; + } - @GetMapping("/login") - public ModelAndView login() { - return new ModelAndView("page/login"); - } + @GetMapping("/login") + public ModelAndView login() { + return new ModelAndView("page/login"); + } } diff --git a/demo-template-freemarker/src/main/java/com/xkcoding/template/freemarker/model/User.java b/demo-template-freemarker/src/main/java/com/xkcoding/template/freemarker/model/User.java index ac1e016..457e658 100644 --- a/demo-template-freemarker/src/main/java/com/xkcoding/template/freemarker/model/User.java +++ b/demo-template-freemarker/src/main/java/com/xkcoding/template/freemarker/model/User.java @@ -12,6 +12,6 @@ import lombok.Data; */ @Data public class User { - private String name; - private String password; + private String name; + private String password; } diff --git a/demo-template-freemarker/src/test/java/com/xkcoding/template/freemarker/SpringBootDemoTemplateFreemarkerApplicationTests.java b/demo-template-freemarker/src/test/java/com/xkcoding/template/freemarker/SpringBootDemoTemplateFreemarkerApplicationTests.java index 5f21f9b..d5e691d 100644 --- a/demo-template-freemarker/src/test/java/com/xkcoding/template/freemarker/SpringBootDemoTemplateFreemarkerApplicationTests.java +++ b/demo-template-freemarker/src/test/java/com/xkcoding/template/freemarker/SpringBootDemoTemplateFreemarkerApplicationTests.java @@ -9,8 +9,8 @@ import org.springframework.test.context.junit4.SpringRunner; @SpringBootTest public class SpringBootDemoTemplateFreemarkerApplicationTests { - @Test - public void contextLoads() { - } + @Test + public void contextLoads() { + } } diff --git a/demo-template-thymeleaf/src/main/java/com/xkcoding/template/thymeleaf/SpringBootDemoTemplateThymeleafApplication.java b/demo-template-thymeleaf/src/main/java/com/xkcoding/template/thymeleaf/SpringBootDemoTemplateThymeleafApplication.java index b4c482f..3a850bd 100644 --- a/demo-template-thymeleaf/src/main/java/com/xkcoding/template/thymeleaf/SpringBootDemoTemplateThymeleafApplication.java +++ b/demo-template-thymeleaf/src/main/java/com/xkcoding/template/thymeleaf/SpringBootDemoTemplateThymeleafApplication.java @@ -14,7 +14,7 @@ import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class SpringBootDemoTemplateThymeleafApplication { - public static void main(String[] args) { - SpringApplication.run(SpringBootDemoTemplateThymeleafApplication.class, args); - } + public static void main(String[] args) { + SpringApplication.run(SpringBootDemoTemplateThymeleafApplication.class, args); + } } diff --git a/demo-template-thymeleaf/src/main/java/com/xkcoding/template/thymeleaf/controller/IndexController.java b/demo-template-thymeleaf/src/main/java/com/xkcoding/template/thymeleaf/controller/IndexController.java index dced597..df6bcab 100644 --- a/demo-template-thymeleaf/src/main/java/com/xkcoding/template/thymeleaf/controller/IndexController.java +++ b/demo-template-thymeleaf/src/main/java/com/xkcoding/template/thymeleaf/controller/IndexController.java @@ -21,18 +21,18 @@ import javax.servlet.http.HttpServletRequest; @Slf4j public class IndexController { - @GetMapping(value = {"", "/"}) - public ModelAndView index(HttpServletRequest request) { - ModelAndView mv = new ModelAndView(); + @GetMapping(value = {"", "/"}) + public ModelAndView index(HttpServletRequest request) { + ModelAndView mv = new ModelAndView(); - User user = (User) request.getSession().getAttribute("user"); - if (ObjectUtil.isNull(user)) { - mv.setViewName("redirect:/user/login"); - } else { - mv.setViewName("page/index"); - mv.addObject(user); - } + User user = (User) request.getSession().getAttribute("user"); + if (ObjectUtil.isNull(user)) { + mv.setViewName("redirect:/user/login"); + } else { + mv.setViewName("page/index"); + mv.addObject(user); + } - return mv; - } + return mv; + } } diff --git a/demo-template-thymeleaf/src/main/java/com/xkcoding/template/thymeleaf/controller/UserController.java b/demo-template-thymeleaf/src/main/java/com/xkcoding/template/thymeleaf/controller/UserController.java index aefb8e8..a395a5a 100644 --- a/demo-template-thymeleaf/src/main/java/com/xkcoding/template/thymeleaf/controller/UserController.java +++ b/demo-template-thymeleaf/src/main/java/com/xkcoding/template/thymeleaf/controller/UserController.java @@ -22,19 +22,19 @@ import javax.servlet.http.HttpServletRequest; @RequestMapping("/user") @Slf4j public class UserController { - @PostMapping("/login") - public ModelAndView login(User user, HttpServletRequest request) { - ModelAndView mv = new ModelAndView(); + @PostMapping("/login") + public ModelAndView login(User user, HttpServletRequest request) { + ModelAndView mv = new ModelAndView(); - mv.addObject(user); - mv.setViewName("redirect:/"); + mv.addObject(user); + mv.setViewName("redirect:/"); - request.getSession().setAttribute("user", user); - return mv; - } + request.getSession().setAttribute("user", user); + return mv; + } - @GetMapping("/login") - public ModelAndView login() { - return new ModelAndView("page/login"); - } + @GetMapping("/login") + public ModelAndView login() { + return new ModelAndView("page/login"); + } } diff --git a/demo-template-thymeleaf/src/main/java/com/xkcoding/template/thymeleaf/model/User.java b/demo-template-thymeleaf/src/main/java/com/xkcoding/template/thymeleaf/model/User.java index 4729104..cf4d5a1 100644 --- a/demo-template-thymeleaf/src/main/java/com/xkcoding/template/thymeleaf/model/User.java +++ b/demo-template-thymeleaf/src/main/java/com/xkcoding/template/thymeleaf/model/User.java @@ -12,6 +12,6 @@ import lombok.Data; */ @Data public class User { - private String name; - private String password; + private String name; + private String password; } diff --git a/demo-template-thymeleaf/src/test/java/com/xkcoding/template/thymeleaf/SpringBootDemoTemplateThymeleafApplicationTests.java b/demo-template-thymeleaf/src/test/java/com/xkcoding/template/thymeleaf/SpringBootDemoTemplateThymeleafApplicationTests.java index 734e6ac..dd20c0c 100644 --- a/demo-template-thymeleaf/src/test/java/com/xkcoding/template/thymeleaf/SpringBootDemoTemplateThymeleafApplicationTests.java +++ b/demo-template-thymeleaf/src/test/java/com/xkcoding/template/thymeleaf/SpringBootDemoTemplateThymeleafApplicationTests.java @@ -9,8 +9,8 @@ import org.springframework.test.context.junit4.SpringRunner; @SpringBootTest public class SpringBootDemoTemplateThymeleafApplicationTests { - @Test - public void contextLoads() { - } + @Test + public void contextLoads() { + } } diff --git a/demo-upload/src/main/java/com/xkcoding/upload/config/UploadConfig.java b/demo-upload/src/main/java/com/xkcoding/upload/config/UploadConfig.java index d8b4a51..f7a835e 100644 --- a/demo-upload/src/main/java/com/xkcoding/upload/config/UploadConfig.java +++ b/demo-upload/src/main/java/com/xkcoding/upload/config/UploadConfig.java @@ -33,68 +33,68 @@ import javax.servlet.Servlet; @ConditionalOnProperty(prefix = "spring.http.multipart", name = "enabled", matchIfMissing = true) @EnableConfigurationProperties(MultipartProperties.class) public class UploadConfig { - @Value("${qiniu.accessKey}") - private String accessKey; + @Value("${qiniu.accessKey}") + private String accessKey; - @Value("${qiniu.secretKey}") - private String secretKey; + @Value("${qiniu.secretKey}") + private String secretKey; - private final MultipartProperties multipartProperties; + private final MultipartProperties multipartProperties; - @Autowired - public UploadConfig(MultipartProperties multipartProperties) { - this.multipartProperties = multipartProperties; - } + @Autowired + public UploadConfig(MultipartProperties multipartProperties) { + this.multipartProperties = multipartProperties; + } - /** - * 上传配置 - */ - @Bean - @ConditionalOnMissingBean - public MultipartConfigElement multipartConfigElement() { - return this.multipartProperties.createMultipartConfig(); - } + /** + * 上传配置 + */ + @Bean + @ConditionalOnMissingBean + public MultipartConfigElement multipartConfigElement() { + return this.multipartProperties.createMultipartConfig(); + } - /** - * 注册解析器 - */ - @Bean(name = DispatcherServlet.MULTIPART_RESOLVER_BEAN_NAME) - @ConditionalOnMissingBean(MultipartResolver.class) - public StandardServletMultipartResolver multipartResolver() { - StandardServletMultipartResolver multipartResolver = new StandardServletMultipartResolver(); - multipartResolver.setResolveLazily(this.multipartProperties.isResolveLazily()); - return multipartResolver; - } + /** + * 注册解析器 + */ + @Bean(name = DispatcherServlet.MULTIPART_RESOLVER_BEAN_NAME) + @ConditionalOnMissingBean(MultipartResolver.class) + public StandardServletMultipartResolver multipartResolver() { + StandardServletMultipartResolver multipartResolver = new StandardServletMultipartResolver(); + multipartResolver.setResolveLazily(this.multipartProperties.isResolveLazily()); + return multipartResolver; + } - /** - * 华东机房 - */ - @Bean - public com.qiniu.storage.Configuration qiniuConfig() { - return new com.qiniu.storage.Configuration(Zone.zone0()); - } + /** + * 华东机房 + */ + @Bean + public com.qiniu.storage.Configuration qiniuConfig() { + return new com.qiniu.storage.Configuration(Zone.zone0()); + } - /** - * 构建一个七牛上传工具实例 - */ - @Bean - public UploadManager uploadManager() { - return new UploadManager(qiniuConfig()); - } + /** + * 构建一个七牛上传工具实例 + */ + @Bean + public UploadManager uploadManager() { + return new UploadManager(qiniuConfig()); + } - /** - * 认证信息实例 - */ - @Bean - public Auth auth() { - return Auth.create(accessKey, secretKey); - } + /** + * 认证信息实例 + */ + @Bean + public Auth auth() { + return Auth.create(accessKey, secretKey); + } - /** - * 构建七牛空间管理实例 - */ - @Bean - public BucketManager bucketManager() { - return new BucketManager(auth(), qiniuConfig()); - } + /** + * 构建七牛空间管理实例 + */ + @Bean + public BucketManager bucketManager() { + return new BucketManager(auth(), qiniuConfig()); + } } diff --git a/demo-upload/src/main/java/com/xkcoding/upload/controller/UploadController.java b/demo-upload/src/main/java/com/xkcoding/upload/controller/UploadController.java index bb0abb9..bf77666 100644 --- a/demo-upload/src/main/java/com/xkcoding/upload/controller/UploadController.java +++ b/demo-upload/src/main/java/com/xkcoding/upload/controller/UploadController.java @@ -33,69 +33,69 @@ import java.io.IOException; @Slf4j @RequestMapping("/upload") public class UploadController { - @Value("${spring.servlet.multipart.location}") - private String fileTempPath; + @Value("${spring.servlet.multipart.location}") + private String fileTempPath; - @Value("${qiniu.prefix}") - private String prefix; + @Value("${qiniu.prefix}") + private String prefix; - private final IQiNiuService qiNiuService; + private final IQiNiuService qiNiuService; - @Autowired - public UploadController(IQiNiuService qiNiuService) { - this.qiNiuService = qiNiuService; - } + @Autowired + public UploadController(IQiNiuService qiNiuService) { + this.qiNiuService = qiNiuService; + } - @PostMapping(value = "/local", consumes = MediaType.MULTIPART_FORM_DATA_VALUE) - public Dict local(@RequestParam("file") MultipartFile file) { - if (file.isEmpty()) { - return Dict.create().set("code", 400).set("message", "文件内容为空"); - } - String fileName = file.getOriginalFilename(); - String rawFileName = StrUtil.subBefore(fileName, ".", true); - String fileType = StrUtil.subAfter(fileName, ".", true); - String localFilePath = StrUtil.appendIfMissing(fileTempPath, "/") + rawFileName + "-" + DateUtil.current(false) + "." + fileType; - try { - file.transferTo(new File(localFilePath)); - } catch (IOException e) { - log.error("【文件上传至本地】失败,绝对路径:{}", localFilePath); - return Dict.create().set("code", 500).set("message", "文件上传失败"); - } + @PostMapping(value = "/local", consumes = MediaType.MULTIPART_FORM_DATA_VALUE) + public Dict local(@RequestParam("file") MultipartFile file) { + if (file.isEmpty()) { + return Dict.create().set("code", 400).set("message", "文件内容为空"); + } + String fileName = file.getOriginalFilename(); + String rawFileName = StrUtil.subBefore(fileName, ".", true); + String fileType = StrUtil.subAfter(fileName, ".", true); + String localFilePath = StrUtil.appendIfMissing(fileTempPath, "/") + rawFileName + "-" + DateUtil.current(false) + "." + fileType; + try { + file.transferTo(new File(localFilePath)); + } catch (IOException e) { + log.error("【文件上传至本地】失败,绝对路径:{}", localFilePath); + return Dict.create().set("code", 500).set("message", "文件上传失败"); + } - log.info("【文件上传至本地】绝对路径:{}", localFilePath); - return Dict.create().set("code", 200).set("message", "上传成功").set("data", Dict.create().set("fileName", fileName).set("filePath", localFilePath)); - } + log.info("【文件上传至本地】绝对路径:{}", localFilePath); + return Dict.create().set("code", 200).set("message", "上传成功").set("data", Dict.create().set("fileName", fileName).set("filePath", localFilePath)); + } - @PostMapping(value = "/yun", consumes = MediaType.MULTIPART_FORM_DATA_VALUE) - public Dict yun(@RequestParam("file") MultipartFile file) { - if (file.isEmpty()) { - return Dict.create().set("code", 400).set("message", "文件内容为空"); - } - String fileName = file.getOriginalFilename(); - String rawFileName = StrUtil.subBefore(fileName, ".", true); - String fileType = StrUtil.subAfter(fileName, ".", true); - String localFilePath = StrUtil.appendIfMissing(fileTempPath, "/") + rawFileName + "-" + DateUtil.current(false) + "." + fileType; - try { - file.transferTo(new File(localFilePath)); - Response response = qiNiuService.uploadFile(new File(localFilePath)); - if (response.isOK()) { - JSONObject jsonObject = JSONUtil.parseObj(response.bodyString()); + @PostMapping(value = "/yun", consumes = MediaType.MULTIPART_FORM_DATA_VALUE) + public Dict yun(@RequestParam("file") MultipartFile file) { + if (file.isEmpty()) { + return Dict.create().set("code", 400).set("message", "文件内容为空"); + } + String fileName = file.getOriginalFilename(); + String rawFileName = StrUtil.subBefore(fileName, ".", true); + String fileType = StrUtil.subAfter(fileName, ".", true); + String localFilePath = StrUtil.appendIfMissing(fileTempPath, "/") + rawFileName + "-" + DateUtil.current(false) + "." + fileType; + try { + file.transferTo(new File(localFilePath)); + Response response = qiNiuService.uploadFile(new File(localFilePath)); + if (response.isOK()) { + JSONObject jsonObject = JSONUtil.parseObj(response.bodyString()); - String yunFileName = jsonObject.getStr("key"); - String yunFilePath = StrUtil.appendIfMissing(prefix, "/") + yunFileName; + String yunFileName = jsonObject.getStr("key"); + String yunFilePath = StrUtil.appendIfMissing(prefix, "/") + yunFileName; - FileUtil.del(new File(localFilePath)); + FileUtil.del(new File(localFilePath)); - log.info("【文件上传至七牛云】绝对路径:{}", yunFilePath); - return Dict.create().set("code", 200).set("message", "上传成功").set("data", Dict.create().set("fileName", yunFileName).set("filePath", yunFilePath)); - } else { - log.error("【文件上传至七牛云】失败,{}", JSONUtil.toJsonStr(response)); - FileUtil.del(new File(localFilePath)); - return Dict.create().set("code", 500).set("message", "文件上传失败"); - } - } catch (IOException e) { - log.error("【文件上传至七牛云】失败,绝对路径:{}", localFilePath); - return Dict.create().set("code", 500).set("message", "文件上传失败"); - } - } + log.info("【文件上传至七牛云】绝对路径:{}", yunFilePath); + return Dict.create().set("code", 200).set("message", "上传成功").set("data", Dict.create().set("fileName", yunFileName).set("filePath", yunFilePath)); + } else { + log.error("【文件上传至七牛云】失败,{}", JSONUtil.toJsonStr(response)); + FileUtil.del(new File(localFilePath)); + return Dict.create().set("code", 500).set("message", "文件上传失败"); + } + } catch (IOException e) { + log.error("【文件上传至七牛云】失败,绝对路径:{}", localFilePath); + return Dict.create().set("code", 500).set("message", "文件上传失败"); + } + } } diff --git a/demo-upload/src/main/java/com/xkcoding/upload/service/IQiNiuService.java b/demo-upload/src/main/java/com/xkcoding/upload/service/IQiNiuService.java index 0a956b3..b0d11d4 100644 --- a/demo-upload/src/main/java/com/xkcoding/upload/service/IQiNiuService.java +++ b/demo-upload/src/main/java/com/xkcoding/upload/service/IQiNiuService.java @@ -14,12 +14,12 @@ import java.io.File; * @date Created in 2018-11-06 17:21 */ public interface IQiNiuService { - /** - * 七牛云上传文件 - * - * @param file 文件 - * @return 七牛上传Response - * @throws QiniuException 七牛异常 - */ - Response uploadFile(File file) throws QiniuException; + /** + * 七牛云上传文件 + * + * @param file 文件 + * @return 七牛上传Response + * @throws QiniuException 七牛异常 + */ + Response uploadFile(File file) throws QiniuException; } diff --git a/demo-upload/src/main/java/com/xkcoding/upload/service/impl/QiNiuServiceImpl.java b/demo-upload/src/main/java/com/xkcoding/upload/service/impl/QiNiuServiceImpl.java index 470b0d5..5b08523 100644 --- a/demo-upload/src/main/java/com/xkcoding/upload/service/impl/QiNiuServiceImpl.java +++ b/demo-upload/src/main/java/com/xkcoding/upload/service/impl/QiNiuServiceImpl.java @@ -25,51 +25,51 @@ import java.io.File; @Service @Slf4j public class QiNiuServiceImpl implements IQiNiuService, InitializingBean { - private final UploadManager uploadManager; + private final UploadManager uploadManager; - private final Auth auth; + private final Auth auth; - @Value("${qiniu.bucket}") - private String bucket; + @Value("${qiniu.bucket}") + private String bucket; - private StringMap putPolicy; + private StringMap putPolicy; - @Autowired - public QiNiuServiceImpl(UploadManager uploadManager, Auth auth) { - this.uploadManager = uploadManager; - this.auth = auth; - } + @Autowired + public QiNiuServiceImpl(UploadManager uploadManager, Auth auth) { + this.uploadManager = uploadManager; + this.auth = auth; + } - /** - * 七牛云上传文件 - * - * @param file 文件 - * @return 七牛上传Response - * @throws QiniuException 七牛异常 - */ - @Override - public Response uploadFile(File file) throws QiniuException { - Response response = this.uploadManager.put(file, file.getName(), getUploadToken()); - int retry = 0; - while (response.needRetry() && retry < 3) { - response = this.uploadManager.put(file, file.getName(), getUploadToken()); - retry++; - } - return response; - } + /** + * 七牛云上传文件 + * + * @param file 文件 + * @return 七牛上传Response + * @throws QiniuException 七牛异常 + */ + @Override + public Response uploadFile(File file) throws QiniuException { + Response response = this.uploadManager.put(file, file.getName(), getUploadToken()); + int retry = 0; + while (response.needRetry() && retry < 3) { + response = this.uploadManager.put(file, file.getName(), getUploadToken()); + retry++; + } + return response; + } - @Override - public void afterPropertiesSet() { - this.putPolicy = new StringMap(); - putPolicy.put("returnBody", "{\"key\":\"$(key)\",\"hash\":\"$(etag)\",\"bucket\":\"$(bucket)\",\"width\":$(imageInfo.width), \"height\":${imageInfo.height}}"); - } + @Override + public void afterPropertiesSet() { + this.putPolicy = new StringMap(); + putPolicy.put("returnBody", "{\"key\":\"$(key)\",\"hash\":\"$(etag)\",\"bucket\":\"$(bucket)\",\"width\":$(imageInfo.width), \"height\":${imageInfo.height}}"); + } - /** - * 获取上传凭证 - * - * @return 上传凭证 - */ - private String getUploadToken() { - return this.auth.uploadToken(bucket, null, 3600, putPolicy); - } + /** + * 获取上传凭证 + * + * @return 上传凭证 + */ + private String getUploadToken() { + return this.auth.uploadToken(bucket, null, 3600, putPolicy); + } } diff --git a/demo-upload/src/test/java/com/xkcoding/upload/SpringBootDemoUploadApplicationTests.java b/demo-upload/src/test/java/com/xkcoding/upload/SpringBootDemoUploadApplicationTests.java index bf477b6..44ce0e8 100644 --- a/demo-upload/src/test/java/com/xkcoding/upload/SpringBootDemoUploadApplicationTests.java +++ b/demo-upload/src/test/java/com/xkcoding/upload/SpringBootDemoUploadApplicationTests.java @@ -9,8 +9,8 @@ import org.springframework.test.context.junit4.SpringRunner; @SpringBootTest public class SpringBootDemoUploadApplicationTests { - @Test - public void contextLoads() { - } + @Test + public void contextLoads() { + } } diff --git a/demo-war/src/test/java/com/xkcoding/war/SpringBootDemoWarApplicationTests.java b/demo-war/src/test/java/com/xkcoding/war/SpringBootDemoWarApplicationTests.java index 5ad505d..300b377 100644 --- a/demo-war/src/test/java/com/xkcoding/war/SpringBootDemoWarApplicationTests.java +++ b/demo-war/src/test/java/com/xkcoding/war/SpringBootDemoWarApplicationTests.java @@ -9,8 +9,8 @@ import org.springframework.test.context.junit4.SpringRunner; @SpringBootTest public class SpringBootDemoWarApplicationTests { - @Test - public void contextLoads() { - } + @Test + public void contextLoads() { + } } diff --git a/demo-websocket-socketio/src/main/java/com/xkcoding/websocket/socketio/config/Event.java b/demo-websocket-socketio/src/main/java/com/xkcoding/websocket/socketio/config/Event.java index 0fb4468..e7ecb2c 100644 --- a/demo-websocket-socketio/src/main/java/com/xkcoding/websocket/socketio/config/Event.java +++ b/demo-websocket-socketio/src/main/java/com/xkcoding/websocket/socketio/config/Event.java @@ -12,21 +12,21 @@ public interface Event { /** * 聊天事件 */ - String CHAT = "chat" ; + String CHAT = "chat"; /** * 广播消息 */ - String BROADCAST = "broadcast" ; + String BROADCAST = "broadcast"; /** * 群聊 */ - String GROUP = "group" ; + String GROUP = "group"; /** * 加入群聊 */ - String JOIN = "join" ; + String JOIN = "join"; } diff --git a/demo-websocket-socketio/src/main/java/com/xkcoding/websocket/socketio/handler/MessageEventHandler.java b/demo-websocket-socketio/src/main/java/com/xkcoding/websocket/socketio/handler/MessageEventHandler.java index d89a6c3..9ae36b6 100644 --- a/demo-websocket-socketio/src/main/java/com/xkcoding/websocket/socketio/handler/MessageEventHandler.java +++ b/demo-websocket-socketio/src/main/java/com/xkcoding/websocket/socketio/handler/MessageEventHandler.java @@ -104,9 +104,7 @@ public class MessageEventHandler { sendToSingle(toUser.get(), data); request.sendAckData(Dict.create().set("flag", true).set("message", "发送成功")); } else { - request.sendAckData(Dict.create() - .set("flag", false) - .set("message", "发送失败,对方不想理你(" + data.getToUid() + "不在线)")); + request.sendAckData(Dict.create().set("flag", false).set("message", "发送失败,对方不想理你(" + data.getToUid() + "不在线)")); } } diff --git a/demo-websocket/src/main/java/com/xkcoding/websocket/config/WebSocketConfig.java b/demo-websocket/src/main/java/com/xkcoding/websocket/config/WebSocketConfig.java index 8c08766..41c44ca 100644 --- a/demo-websocket/src/main/java/com/xkcoding/websocket/config/WebSocketConfig.java +++ b/demo-websocket/src/main/java/com/xkcoding/websocket/config/WebSocketConfig.java @@ -24,9 +24,8 @@ public class WebSocketConfig implements WebSocketMessageBrokerConfigurer { public void registerStompEndpoints(StompEndpointRegistry registry) { // 注册一个 /notification 端点,前端通过这个端点进行连接 registry.addEndpoint("/notification") - //解决跨域问题 - .setAllowedOrigins("*") - .withSockJS(); + //解决跨域问题 + .setAllowedOrigins("*").withSockJS(); } @Override diff --git a/demo-websocket/src/main/java/com/xkcoding/websocket/model/server/Cpu.java b/demo-websocket/src/main/java/com/xkcoding/websocket/model/server/Cpu.java index b0b59bd..af953da 100644 --- a/demo-websocket/src/main/java/com/xkcoding/websocket/model/server/Cpu.java +++ b/demo-websocket/src/main/java/com/xkcoding/websocket/model/server/Cpu.java @@ -50,8 +50,7 @@ public class Cpu { } public double getTotal() { - return NumberUtil.round(NumberUtil.mul(total, 100), 2) - .doubleValue(); + return NumberUtil.round(NumberUtil.mul(total, 100), 2).doubleValue(); } public void setTotal(double total) { @@ -59,8 +58,7 @@ public class Cpu { } public double getSys() { - return NumberUtil.round(NumberUtil.mul(sys / total, 100), 2) - .doubleValue(); + return NumberUtil.round(NumberUtil.mul(sys / total, 100), 2).doubleValue(); } public void setSys(double sys) { @@ -68,8 +66,7 @@ public class Cpu { } public double getUsed() { - return NumberUtil.round(NumberUtil.mul(used / total, 100), 2) - .doubleValue(); + return NumberUtil.round(NumberUtil.mul(used / total, 100), 2).doubleValue(); } public void setUsed(double used) { @@ -77,8 +74,7 @@ public class Cpu { } public double getWait() { - return NumberUtil.round(NumberUtil.mul(wait / total, 100), 2) - .doubleValue(); + return NumberUtil.round(NumberUtil.mul(wait / total, 100), 2).doubleValue(); } public void setWait(double wait) { @@ -86,8 +82,7 @@ public class Cpu { } public double getFree() { - return NumberUtil.round(NumberUtil.mul(free / total, 100), 2) - .doubleValue(); + return NumberUtil.round(NumberUtil.mul(free / total, 100), 2).doubleValue(); } public void setFree(double free) { diff --git a/demo-websocket/src/main/java/com/xkcoding/websocket/model/server/Jvm.java b/demo-websocket/src/main/java/com/xkcoding/websocket/model/server/Jvm.java index 3dd3ded..42dcae7 100644 --- a/demo-websocket/src/main/java/com/xkcoding/websocket/model/server/Jvm.java +++ b/demo-websocket/src/main/java/com/xkcoding/websocket/model/server/Jvm.java @@ -86,8 +86,7 @@ public class Jvm { * 获取JDK名称 */ public String getName() { - return ManagementFactory.getRuntimeMXBean() - .getVmName(); + return ManagementFactory.getRuntimeMXBean().getVmName(); } public String getVersion() { @@ -111,8 +110,7 @@ public class Jvm { } public String getStartTime() { - return DateUtil.formatDateTime(new Date(ManagementFactory.getRuntimeMXBean() - .getStartTime())); + return DateUtil.formatDateTime(new Date(ManagementFactory.getRuntimeMXBean().getStartTime())); } @@ -121,8 +119,7 @@ public class Jvm { } public String getRunTime() { - long startTime = ManagementFactory.getRuntimeMXBean() - .getStartTime(); + long startTime = ManagementFactory.getRuntimeMXBean().getStartTime(); return DateUtil.formatBetween(DateUtil.current(false) - startTime); } } diff --git a/demo-websocket/src/main/java/com/xkcoding/websocket/util/ServerUtil.java b/demo-websocket/src/main/java/com/xkcoding/websocket/util/ServerUtil.java index 4f940fa..31952cd 100644 --- a/demo-websocket/src/main/java/com/xkcoding/websocket/util/ServerUtil.java +++ b/demo-websocket/src/main/java/com/xkcoding/websocket/util/ServerUtil.java @@ -32,12 +32,7 @@ public class ServerUtil { * @return Dict */ public static Dict wrapServerDict(ServerVO serverVO) { - Dict dict = Dict.create() - .set("cpu", serverVO.getCpu().get(0).getData()) - .set("mem", serverVO.getMem().get(0).getData()) - .set("sys", serverVO.getSys().get(0).getData()) - .set("jvm", serverVO.getJvm().get(0).getData()) - .set("sysFile", serverVO.getSysFile().get(0).getData()); + Dict dict = Dict.create().set("cpu", serverVO.getCpu().get(0).getData()).set("mem", serverVO.getMem().get(0).getData()).set("sys", serverVO.getSys().get(0).getData()).set("jvm", serverVO.getJvm().get(0).getData()).set("sysFile", serverVO.getSysFile().get(0).getData()); return dict; } }