我定义了一个独立的枚举类型,如下所示:
package my.pkg.types;
public enum MyEnumType {
TYPE1,
TYPE2
}
Run Code Online (Sandbox Code Playgroud)
现在,我想将该类型的值注入bean属性:
<bean name="someName" class="my.pkg.classes">
<property name="type" value="my.pkg.types.MyEnumType.TYPE1" />
</bean>
Run Code Online (Sandbox Code Playgroud)
......那不起作用:(
我应该如何将一个枚举注入一个春豆?
我想创建一个类,添加自定义方法,以便在spring安全表达式语言中通过注释进行基于方法的授权.
例如,我想创建一个像'customMethodReturningBoolean'这样的自定义方法,以某种方式使用:
@PreAuthorize("customMethodReturningBoolean()")
public void myMethodToSecure() {
// whatever
}
Run Code Online (Sandbox Code Playgroud)
我的问题是这个.如果可能,我应该创建自定义方法的子类,我将如何在spring xml配置文件中配置它,并且有人给我一个以这种方式使用的自定义方法的示例?
在我的Spring Boot项目中,我定义了以下RestController方法:
@PreAuthorize("hasAuthority('" + Permission.APPEND_DECISION + "')")
@RequestMapping(value = "/{decisionId}/decisions", method = RequestMethod.PUT)
public DecisionResponse appendDecisionToParent(@PathVariable @NotNull @DecimalMin("0") Long decisionId, @Valid @RequestBody AppendDecisionRequest decisionRequest) {
....
return new DecisionResponse(decision);
}
Run Code Online (Sandbox Code Playgroud)
现在,为了提供允许的授权机构名称,我使用以下代码构造:
@PreAuthorize("hasAuthority('" + Permission.APPEND_DECISION + "')")
Run Code Online (Sandbox Code Playgroud)
Permission.APPEND_DECISION常数在哪里:
public static final String APPEND_DECISION = "APPEND_DECISION";
Run Code Online (Sandbox Code Playgroud)
Java / Spring中是否还有任何更优雅的方式来定义这种代码?