因有些jar包是自己写过的工具类,镜像网站上也不能下到;需自行下载。
链接:https://pan.baidu.com/s/1U5Xr3b6M2kIBmwVNR-SaAw
提取码:916w
下载成功后,解压到相应的文件夹下。如解压到C:\Users\user.m2\repository
改框架本身带有一定的功能模块,请自行下载sql文件建立数据库表
链接:https://pan.baidu.com/s/1yhuVN-r9NvDRpGxIMUghRw
提取码:0pog
mvn -Dmaven.test.skip=true clean install -pl bluesky-framework-common,bluesky-framework-spring-boot-starter,bluesky-framework-security-spring-boot-starter
mvn -Dmaven.test.skip=true clean package -pl bluesky-framework-core,bluesky-framework-server,bluesky-framework-api
成功后,在server和api下有target文件夹,文件夹下的jar包就是打的包,如bluesky-***-server-1.0.0-SNAPSHOT.jar
mvn -Dmaven.test.skip=true clean install -pl bluesky-framework-common,bluesky-framework-spring-boot-starter
mvn -Dmaven.test.skip=true clean package -pl bluesky-framework-core,bluesky-framework-server
mvn -Dmaven.test.skip=true clean install -pl bluesky-framework-common,bluesky-framework-spring-boot-starter,bluesky-framework-security-spring-boot-starter
mvn -Dmaven.test.skip=true clean package -pl bluesky-framework-api
- windows运行参考根目录下的deploy_api.bat、deploy_server.bat
- linux运行参考根目录下的deploy_api.sh、deploy_server.sh
- 发布运行还可以修改运行端口、数据库地址、redis地址等,只需要在运行的jar后面添加 --相应的需要覆盖的配置即可,如:
java -jar bluesky-XXX-1.0.0-SNAPSHOT.jar --server.port=8008 --info.domain=192.168.1.100 --spring.dubbo.registry="redis://192.168.1.100:7777" --spring.redis.host=192.168.1.100 --spring.redis.port=7777
- db.local.net为本地单元测试的数据库地址,建议为本地
- db.bluesky.net 为运行的数据库地址
- dubbo.bluesky.net 为dubbo注册中心redis的地址
修改系统的hosts文件,添加
192.168.1.30 db.local.net
192.168.1.30 db.bluesky.net
192.168.1.136 dubbo.bluesky.net
bluesky-framework-server的src/main/包根目录下,FrameworkServerApplication为可运行类
右键run或者debug就可以运行了
bluesky-framework-api的src/main/包根目录下,FrameworkApiApplication为可运行类
右键run或者debug就可以运行了
数据库脚本路径:
bluesky-framework-core/test/resources/database/schema/init.ddl
| 模块名称 |
模块项目名称 |
groupId |
| 快速开发框架server |
bluesky-framework-server |
25 |
| 快速开发框架api |
bluesky-framework-api |
26 |
| 模块项目名称 |
端口 |
| bluesky-framework-server 服务端口 |
2508 |
| bluesky-framework-server dubbo端口 |
2507 |
| bluesky-framework-api 服务端口 |
2608 |
| 角色类型 |
字符串 |
| 系统管理员 |
ROLE_PLATFORM,ROLE_ADMIN |
| 政务单位 |
ROLE_PLATFORM,ROLE_GOVERNMENT |
| 个人认证 |
ROLE_SOCIAL,ROLE_PERSONAL_AUTH |
| 企业认证 |
ROLE_SOCIAL,ROLE_COMPANY_AUTH |
- bluesky-framework-server配置
- pom文件添加
<dependency>
<groupId>org.mvnsearch.spring.boot</groupId>
<artifactId>spring-boot-starter-dubbo</artifactId>
<version>1.0.0-SNAPSHOT</version>
</dependency>
- application.properties
# 当前dubbo发布的应用名称
spring.dubbo.app=dubbo-framework-provider
# redis注册中心地址及端口
spring.dubbo.registry=redis://dubbo.bluesky.net:6379
# dubbo协议dubbo
spring.dubbo.protocol=dubbo
# 当前dubbo服务运行的端口
spring.dubbo.port=2507
- manager实现类中,使用注解@DubboService
@Component
@DubboService
public class AccountAuthorityManagerImpl implements AccountAuthorityManager {
- bluesky-framework-spring-boot-starter配置
- AutoConfiguration继承DubboBasedAutoConfiguration,
- 添加注解@AutoConfigureAfter(DubboAutoConfiguration.class)
- 注入manager的bean,@Bean public ReferenceBean xxxManager()
@Configuration
@EnableConfigurationProperties(FrameworkProperties.class)
@AutoConfigureAfter(DubboAutoConfiguration.class)
public class FrameworkAutoConfiguration extends DubboBasedAutoConfiguration {
@Autowired
private FrameworkProperties properties;
/**
* setting
**/
@Bean
public ReferenceBean pageSettingManager() {
return getConsumerBean(PageSettingManager.class, properties.getVersion(), properties.getTimeout());
}
...
}
- pom文件
<dependency>
<groupId>com.bluesky.framework</groupId>
<artifactId>bluesky-framework-spring-boot-starter</artifactId>
<version>1.0.0-SNAPSHOT</version>
</dependency>
- application.properties或者application.yml
spring:
# dubbo
dubbo:
# dubbo客户端名称
app: dubbo-bluesky-framework-api
# dubbo注册中心redis地址及端口
registry: redis://dubbo.bluesky.net:6379
# 协议
protocol: dubbo
# 线程数
threads: 200
- 配置好后,直接在代码中就使用了, 和本地bean一样实现服务
controller中直接注入manager就可以了
@Autowired
private RegionManager regionManager;
然后方法中直接regionManager.xxx方法调用了
- bluesky-framework-security-spring-boot-starter
spring security 全局的配置都在bluesky-framework-security-spring-boot-starter
bluesky-framework-api的pom中只要添加:
<dependency>
<groupId>com.bluesky.framework</groupId>
<artifactId>bluesky-framework-security-spring-boot-starter</artifactId>
<version>1.0.0-SNAPSHOT</version>
</dependency>
然后只需要配置:
1. URL权限控制
FrameworkSecurityConfigurerAdapter类,继承FrameworkWebSecurityConfigurerAdapter,Override internalConfigure
@Configuration
@EnableWebSecurity
@Order(SecurityProperties.ACCESS_OVERRIDE_ORDER)
public class FrameworkSecurityConfigurerAdapter extends FrameworkWebSecurityConfigurerAdapter {
@Override
protected void internalConfigure(HttpSecurity http) throws Exception {}
该方法内进行URL的权限控制:从上到下一次判断,permitAll为都可以访问,hasRole为要有某个角色权限才可以
.antMatchers("/config/**").permitAll()
.antMatchers("/setting/page/**").hasRole("ADMIN");
用户的角色权限在account的authoritiesText中
2. 接口权限控制
controller中的接口方法上注解PreAuthorize即可
@PreAuthorize("hasPermission('crm-api','om_user_add')")
hasPermission第一个参数目前没实际作用,只是标识当前domain,第二个参数为用户的操作权限代码,最终与用户的操作权限进行对比