升级 Dubbo 到 2.7.1 。目前 Dubbo 引用服务存在 Bug ,所以需要使用 @Autowire 解决下。

This commit is contained in:
YunaiV
2019-04-30 21:32:05 +08:00
parent 038073d9a8
commit 903489bcc7
80 changed files with 225 additions and 208 deletions

View File

@@ -39,20 +39,6 @@
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>dubbo</artifactId>
</dependency>
<dependency>
<groupId>com.alibaba.boot</groupId>
<artifactId>dubbo-spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.apache.curator</groupId>
<artifactId>curator-framework</artifactId>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>

View File

@@ -1,9 +1,12 @@
package cn.iocoder.mall.admin.application.config;
import cn.iocoder.common.framework.config.GlobalExceptionHandler;
import cn.iocoder.common.framework.servlet.CorsFilter;
import cn.iocoder.mall.admin.sdk.interceptor.AdminAccessLogInterceptor;
import cn.iocoder.mall.admin.sdk.interceptor.AdminSecurityInterceptor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.web.servlet.FilterRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;
import org.springframework.web.servlet.config.annotation.*;
@@ -37,13 +40,12 @@ public class MVCConfiguration implements WebMvcConfigurer {
registry.addResourceHandler("webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/");
}
// TODO 芋艿,允许跨域
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**")
.allowedHeaders("*")
.allowedMethods("*")
.allowedOrigins("*");
@Bean
public FilterRegistrationBean<CorsFilter> corsFilter() {
FilterRegistrationBean<CorsFilter> registrationBean = new FilterRegistrationBean<>();
registrationBean.setFilter(new CorsFilter());
registrationBean.addUrlPatterns("/*");
return registrationBean;
}
}
}

View File

@@ -18,11 +18,11 @@ import cn.iocoder.mall.admin.application.vo.AdminPageVO;
import cn.iocoder.mall.admin.application.vo.AdminRoleVO;
import cn.iocoder.mall.admin.application.vo.AdminVO;
import cn.iocoder.mall.admin.sdk.context.AdminSecurityContextHolder;
import com.alibaba.dubbo.config.annotation.Reference;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import org.apache.dubbo.config.annotation.Reference;
import org.springframework.web.bind.annotation.*;
import java.util.*;
@@ -33,11 +33,11 @@ import java.util.stream.Collectors;
@Api("管理员模块")
public class AdminController {
@Reference(validation = "true")
@Reference(validation = "true", lazy = true)
private ResourceService resourceService;
@Reference(validation = "true")
@Reference(validation = "true", lazy = true)
private AdminService adminService;
@Reference(validation = "true")
@Reference(validation = "true", lazy = true)
private RoleService roleService;
// =========== 当前管理员相关的资源 API ===========
@@ -171,4 +171,4 @@ public class AdminController {
return adminService.assignRole(AdminSecurityContextHolder.getContext().getAdminId(), id, roleIds);
}
}
}

View File

@@ -9,7 +9,7 @@ import cn.iocoder.mall.admin.application.convert.DataDictConvert;
import cn.iocoder.mall.admin.application.vo.DataDictEnumVO;
import cn.iocoder.mall.admin.application.vo.DataDictVO;
import cn.iocoder.mall.admin.sdk.context.AdminSecurityContextHolder;
import com.alibaba.dubbo.config.annotation.Reference;
import org.apache.dubbo.config.annotation.Reference;
import com.google.common.collect.ImmutableListMultimap;
import com.google.common.collect.Multimaps;
import io.swagger.annotations.Api;
@@ -26,7 +26,7 @@ import java.util.List;
@Api("数据字典模块")
public class DataDictController {
@Reference(validation = "true")
@Reference(validation = "true", lazy = true)
private DataDictService dataDictService;
@GetMapping("/list")
@@ -107,4 +107,4 @@ public class DataDictController {
return dataDictService.deleteDataDict(AdminSecurityContextHolder.getContext().getAdminId(), id);
}
}
}

View File

@@ -5,11 +5,11 @@ import cn.iocoder.mall.admin.api.OAuth2Service;
import cn.iocoder.mall.admin.api.bo.OAuth2AccessTokenBO;
import cn.iocoder.mall.admin.application.convert.PassportConvert;
import cn.iocoder.mall.admin.application.vo.PassportLoginVO;
import com.alibaba.dubbo.config.annotation.Reference;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import org.apache.dubbo.config.annotation.Reference;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
@@ -20,7 +20,7 @@ import org.springframework.web.bind.annotation.RestController;
@Api("Admin Passport 模块")
public class PassportController {
@Reference
@Reference(validation = "true", lazy = true)
private OAuth2Service oauth2Service;
@PostMapping("/login")
@@ -39,4 +39,4 @@ public class PassportController {
// TODO 功能 refresh_token
}
}

View File

@@ -10,7 +10,7 @@ import cn.iocoder.mall.admin.application.convert.ResourceConvert;
import cn.iocoder.mall.admin.application.vo.ResourceTreeNodeVO;
import cn.iocoder.mall.admin.application.vo.ResourceVO;
import cn.iocoder.mall.admin.sdk.context.AdminSecurityContextHolder;
import com.alibaba.dubbo.config.annotation.Reference;
import org.apache.dubbo.config.annotation.Reference;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
@@ -28,7 +28,7 @@ import java.util.stream.Collectors;
@Api("资源模块")
public class ResourceController {
@Reference(validation = "true")
@Reference(validation = "true", lazy = true)
private ResourceService resourceService;
@SuppressWarnings("Duplicates")
@@ -106,4 +106,4 @@ public class ResourceController {
return resourceService.deleteResource(AdminSecurityContextHolder.getContext().getAdminId(), id);
}
}
}

View File

@@ -16,7 +16,7 @@ import cn.iocoder.mall.admin.application.vo.RolePageVO;
import cn.iocoder.mall.admin.application.vo.RoleResourceTreeNodeVO;
import cn.iocoder.mall.admin.application.vo.RoleVO;
import cn.iocoder.mall.admin.sdk.context.AdminSecurityContextHolder;
import com.alibaba.dubbo.config.annotation.Reference;
import org.apache.dubbo.config.annotation.Reference;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
@@ -29,9 +29,9 @@ import java.util.stream.Collectors;
@RequestMapping("admins/role")
public class RoleController {
@Reference(validation = "true")
@Reference(validation = "true", lazy = true)
private RoleService roleService;
@Reference(validation = "true")
@Reference(validation = "true", lazy = true)
private ResourceService resourceService;
@GetMapping("/page")
@@ -124,4 +124,4 @@ public class RoleController {
return roleService.assignResource(AdminSecurityContextHolder.getContext().getAdminId(), id, resourceIds);
}
}
}

View File

@@ -17,19 +17,16 @@
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.1.5.RELEASE</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.1.5.RELEASE</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<groupId>org.apache.dubbo</groupId>
<artifactId>dubbo</artifactId>
<version>2.6.5</version>
</dependency>
<dependency>

View File

@@ -3,9 +3,9 @@ package cn.iocoder.mall.admin.sdk.interceptor;
import cn.iocoder.common.framework.util.HttpUtil;
import cn.iocoder.mall.admin.api.AdminAccessLogService;
import cn.iocoder.mall.admin.api.dto.AdminAccessLogAddDTO;
import com.alibaba.dubbo.config.annotation.Reference;
import com.alibaba.fastjson.JSON;
import org.apache.commons.lang3.exception.ExceptionUtils;
import org.apache.dubbo.config.annotation.Reference;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;
@@ -32,7 +32,7 @@ public class AdminAccessLogInterceptor extends HandlerInterceptorAdapter {
*/
private static final ThreadLocal<Integer> ADMIN_ID = new ThreadLocal<>();
@Reference
@Reference(lazy = true) // TODO 芋艿,初始化时,会存在 spring boot 启动时,服务无法引用的情况,先暂时这么解决。
private AdminAccessLogService adminAccessLogService;
@Override
@@ -44,6 +44,9 @@ public class AdminAccessLogInterceptor extends HandlerInterceptorAdapter {
@Override
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) {
if (adminAccessLogService == null) {
throw new IllegalStateException("AdminAccessLogService 服务未引入成功");
}
AdminAccessLogAddDTO accessLog = new AdminAccessLogAddDTO();
try {
accessLog.setAdminId(ADMIN_ID.get());

View File

@@ -8,7 +8,7 @@ import cn.iocoder.mall.admin.api.bo.OAuth2AuthenticationBO;
import cn.iocoder.mall.admin.api.constant.AdminErrorCodeEnum;
import cn.iocoder.mall.admin.sdk.context.AdminSecurityContext;
import cn.iocoder.mall.admin.sdk.context.AdminSecurityContextHolder;
import com.alibaba.dubbo.config.annotation.Reference;
import org.apache.dubbo.config.annotation.Reference;
import org.springframework.stereotype.Component;
import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;
@@ -22,7 +22,7 @@ import java.util.Set;
@Component
public class AdminSecurityInterceptor extends HandlerInterceptorAdapter {
@Reference
@Reference(lazy = true) // TODO 芋艿,初始化时,会存在 spring boot 启动时,服务无法引用的情况,先暂时这么解决。
private OAuth2Service oauth2Service;
@Override
@@ -74,4 +74,4 @@ public class AdminSecurityInterceptor extends HandlerInterceptorAdapter {
}
}
}
}

View File

@@ -3,6 +3,7 @@ package cn.iocoder.mall.admin.api.bo;
import lombok.Data;
import lombok.experimental.Accessors;
import java.io.Serializable;
import java.util.Date;
/**
@@ -10,7 +11,7 @@ import java.util.Date;
*/
@Data
@Accessors(chain = true)
public class AdminBO {
public class AdminBO implements Serializable {
/**
* 管理员编号

View File

@@ -3,6 +3,7 @@ package cn.iocoder.mall.admin.api.bo;
import lombok.Data;
import lombok.experimental.Accessors;
import java.io.Serializable;
import java.util.List;
/**
@@ -10,7 +11,7 @@ import java.util.List;
*/
@Data
@Accessors(chain = true)
public class AdminPageBO {
public class AdminPageBO implements Serializable {
/**
* 管理员数组

View File

@@ -3,6 +3,7 @@ package cn.iocoder.mall.admin.api.bo;
import lombok.Data;
import lombok.experimental.Accessors;
import java.io.Serializable;
import java.util.Date;
/**
@@ -10,7 +11,7 @@ import java.util.Date;
*/
@Data
@Accessors(chain = true)
public class ResourceBO {
public class ResourceBO implements Serializable {
/**
* 资源编号

View File

@@ -3,6 +3,7 @@ package cn.iocoder.mall.admin.api.bo;
import lombok.Data;
import lombok.experimental.Accessors;
import java.io.Serializable;
import java.util.Date;
/**
@@ -10,7 +11,7 @@ import java.util.Date;
*/
@Data
@Accessors(chain = true)
public class RoleBO {
public class RoleBO implements Serializable {
/**
* 角色编号

View File

@@ -3,6 +3,7 @@ package cn.iocoder.mall.admin.api.bo;
import lombok.Data;
import lombok.experimental.Accessors;
import java.io.Serializable;
import java.util.List;
/**
@@ -10,7 +11,7 @@ import java.util.List;
*/
@Data
@Accessors(chain = true)
public class RolePageBO {
public class RolePageBO implements Serializable {
/**
* 角色数组

View File

@@ -5,6 +5,7 @@ import lombok.Data;
import lombok.experimental.Accessors;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.util.Date;
/**
@@ -12,7 +13,7 @@ import java.util.Date;
*/
@Data
@Accessors(chain = true)
public class AdminAccessLogAddDTO {
public class AdminAccessLogAddDTO implements Serializable {
/**
* 管理员编号 - 空

View File

@@ -29,9 +29,21 @@
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<groupId>org.apache.dubbo</groupId>
<artifactId>dubbo</artifactId>
</dependency>
<dependency>
<groupId>org.apache.curator</groupId>
<artifactId>curator-framework</artifactId>
</dependency>
<dependency>
<groupId>org.apache.curator</groupId>
<artifactId>curator-recipes</artifactId>
</dependency>
<dependency>
<groupId>org.apache.dubbo</groupId>
<artifactId>dubbo-spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>

View File

@@ -13,7 +13,7 @@ import org.springframework.stereotype.Service;
import java.util.Date;
@Service
@com.alibaba.dubbo.config.annotation.Service(validation = "true")
@org.apache.dubbo.config.annotation.Service(validation = "true")
public class AdminAccessLogServiceImpl implements AdminAccessLogService {
/**
@@ -53,4 +53,4 @@ public class AdminAccessLogServiceImpl implements AdminAccessLogService {
return CommonResult.success(true);
}
}
}

View File

@@ -29,7 +29,7 @@ import java.util.Set;
import java.util.stream.Collectors;
@Service
@com.alibaba.dubbo.config.annotation.Service(validation = "true")
@org.apache.dubbo.config.annotation.Service(validation = "true")
public class AdminServiceImpl implements AdminService {
@Autowired

View File

@@ -24,7 +24,7 @@ import java.util.stream.Collectors;
* 数据字典 Service
*/
@Service
@com.alibaba.dubbo.config.annotation.Service(validation = "true")
@org.apache.dubbo.config.annotation.Service(validation = "true")
public class DataDictServiceImpl implements DataDictService {
@Autowired
@@ -111,4 +111,4 @@ public class DataDictServiceImpl implements DataDictService {
List<DataDictBO> dataDictBOList = DataDictConvert.INSTANCE.convert(dataDictDOList);
return CommonResult.success(dataDictBOList);
}
}
}

View File

@@ -21,7 +21,7 @@ import java.util.Set;
import java.util.UUID;
@Service
@com.alibaba.dubbo.config.annotation.Service(validation = "true")
@org.apache.dubbo.config.annotation.Service(validation = "true")
public class OAuth2ServiceImpl implements OAuth2Service {
/**
@@ -142,4 +142,4 @@ public class OAuth2ServiceImpl implements OAuth2Service {
return UUID.randomUUID().toString().replaceAll("-", "");
}
}
}

View File

@@ -24,7 +24,7 @@ import java.util.List;
import java.util.Set;
@Service
@com.alibaba.dubbo.config.annotation.Service(validation = "true")
@org.apache.dubbo.config.annotation.Service(validation = "true")
public class ResourceServiceImpl implements ResourceService {
@Autowired
@@ -156,4 +156,4 @@ public class ResourceServiceImpl implements ResourceService {
return false;
}
}
}

View File

@@ -30,7 +30,7 @@ import java.util.Set;
import java.util.stream.Collectors;
@Service
@com.alibaba.dubbo.config.annotation.Service(validation = "true")
@org.apache.dubbo.config.annotation.Service(validation = "true")
public class RoleServiceImpl implements RoleService {
@Autowired
@@ -160,4 +160,4 @@ public class RoleServiceImpl implements RoleService {
return roleMapper.selectListByIds(roleIds);
}
}
}

View File

@@ -22,4 +22,4 @@ dubbo:
port: -1
name: dubbo
scan:
base-packages: cn.iocoder.mall.admin.service
base-packages: cn.iocoder.mall.admin.service