问题描述
我有一个Spring Boot Controller,我想仅在某些配置文件处于活动状态时才启用它。但是,我不想使用硬编码来编码所有这些配置文件,而是想使用正则表达式或其他方法来实现此目的。
考虑这段代码
export const dataService = () => {
const [data,setData] = useState([
{
dataName:'name1',dataVisible:false,dataUrl:'http://localhost:8080/get_document/41gfdg-rewr-432fdsg'
},{
dataName:'name2',dataUrl:'http://localhost:8080/get_document/gfd6765-hf34-hgf34'
},{
dataName:'name3',dataUrl:'http://localhost:8080/get_document/hgfhbv-dsad-jy675j'
},{
dataName:'name4',dataUrl:'http://localhost:8080/get_document/lokg12-jg9d-hgf'
}])
const handleChange = (e) => {
setData(prevState => ({
...prevState,[e.target.name]: e.target.checked
}))
}
return(
<div>
{data.map((item,index) => {
return(
<Grid>
<Checkbox
name={item.dataName}
onChange={handleChange}
checked={item.dataVisible}
/>
<label>{item}</label>
</Grid>
)
})}
<div>
)
}
现在,我希望仅在活动配置文件属于以下内容时启用此控制器:@Controller
@Profile("#{'spring.profiles.active' matches 'eu'}") // this line is not working
public class HomeController{
// ... removed other code for brevity
}
等。 “ 等”是此处的关键字。我还有更多配置文件,它们中都包含dev1_eu,dev2_eu,dev3_eu,qa1_eu,qa2_eu,qa3_eu,prod1_eu,prod2_eu,prod3_eu,test1_eu,test2_eu
,并且我希望仅在此类eu
配置文件中启用上述控制器。现在,拥有这么多配置文件是否是一个好习惯,尚待争论,但是假设这不能更改(即无法减少配置文件的数量)。由于如果配置文件的数量较少,我可能会这样做:
*eu*
该怎么做呢?如果不是@Profile,那么还有其他更简便的方法可以实现这一目标吗?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)