starter包架构调整

This commit is contained in:
click33
2021-07-04 22:31:28 +08:00
parent 12d76e34bb
commit 82f7d7f78c
9 changed files with 113 additions and 71 deletions

View File

@@ -2,8 +2,6 @@ package cn.dev33.satoken.spring;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Import;
import org.springframework.stereotype.Component;
import org.springframework.util.PathMatcher;
@@ -18,32 +16,21 @@ import cn.dev33.satoken.stp.StpInterface;
import cn.dev33.satoken.temp.SaTempInterface;
/**
* 利用spring的自动装配来加载开发者重写的Bean
* 注入Sa-Token所需要的Bean
*
* @author kong
*
*/
@Component
@Import(SaHistoryVersionInject.class)
public class SaTokenSpringAutowired {
@Import({SaBeanRegister.class, SaHistoryVersionInject.class})
public class SaBeanInject {
/**
* 获取配置Bean
*
* @return 配置对象
*/
@Bean
@ConfigurationProperties(prefix = "sa-token")
public SaTokenConfig getSaTokenConfig() {
return new SaTokenConfig();
}
/**
* 注入配置Bean
*
* @param saTokenConfig 配置对象
*/
@Autowired
@Autowired(required = false)
public void setConfig(SaTokenConfig saTokenConfig) {
SaManager.setConfig(saTokenConfig);
}
@@ -78,22 +65,12 @@ public class SaTokenSpringAutowired {
SaManager.setSaTokenAction(saTokenAction);
}
/**
* 获取容器交互Bean (Spring版)
*
* @return 容器交互Bean (Spring版)
*/
@Bean
public SaTokenContext getSaTokenContext() {
return new SaTokenContextForSpring();
}
/**
* 注入容器交互Bean
*
* @param saTokenContext SaTokenContext对象
*/
@Autowired
@Autowired(required = false)
public void setSaTokenContext(SaTokenContext saTokenContext) {
SaManager.setSaTokenContext(saTokenContext);
}
@@ -129,5 +106,4 @@ public class SaTokenSpringAutowired {
SaPathMatcherHolder.setPathMatcher(pathMatcher);
}
}

View File

@@ -0,0 +1,38 @@
package cn.dev33.satoken.spring;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Bean;
import cn.dev33.satoken.config.SaTokenConfig;
import cn.dev33.satoken.context.SaTokenContext;
/**
* 注册Sa-Token所需要的Bean
* <p> Bean 的注册与注入应该分开在两个文件中,否则在某些场景下会造成循环依赖
* @author kong
*
*/
public class SaBeanRegister {
/**
* 获取配置Bean
*
* @return 配置对象
*/
@Bean
@ConfigurationProperties(prefix = "sa-token")
public SaTokenConfig getSaTokenConfig() {
return new SaTokenConfig();
}
/**
* 获取容器交互Bean (Spring版)
*
* @return 容器交互Bean (Spring版)
*/
@Bean
public SaTokenContext getSaTokenContext() {
return new SaTokenContextForSpring();
}
}

View File

@@ -1 +1 @@
org.springframework.boot.autoconfigure.EnableAutoConfiguration=cn.dev33.satoken.spring.SaTokenSpringAutowired
org.springframework.boot.autoconfigure.EnableAutoConfiguration=cn.dev33.satoken.spring.SaBeanInject