簡體   English   中英

如何動態創建Spring bean和在新創建的bean上設置注釋

[英]How to Dynamically create Spring bean and Set Annotations on the newly created bean

我正在嘗試動態創建Spring bean並在新創建的bean上設置注釋來對下面的代碼進行單元測試

class BeanMetadata 
{
    int id;
    String type;
    String beanName;
    Date createdAt;
    Date createdBy;
}

該方法從BeanMetadata和搜索在ApplicationContext中獲取Bean名稱定bean並檢查Bean有@OperationExecutePermission@AdministerPermission存在於豆注釋。

因此,我嘗試動態創建Spring bean並在新創建的注解上設置這些注釋

void addCommandPermissions(BeanMetadata command) {
    if (applicationContext.containsBean(command.getBeanName())) {
            Object bean = applicationContext.getBean(command.getBeanName());
            Class<?> beanClass = bean.getClass();
            if (beanClass.isAnnotationPresent(AdministerPermission.class)) {
                overrideAdminPermission =   beanClass.getAnnotation(AdministerPermission.class).name();
            }
            if (beanClass.isAnnotationPresent(OperationExecutePermission.class)) {
                overrideExecPermission =    beanClass.getAnnotation(OperationExecutePermission.class).name();
            }
        }

我正在嘗試實現(beanClass.isAnnotationPresent(AdministerPermission.class))必須為真,或者(beanClass.isAnnotationPresent(OperationExecutePermission.class))對於新創建的bean是否必須為真。

您不能在運行時將注釋添加到任何內容。

您在這里可以做的最好的事情就是創建一個帶有注釋的類。 然后,您可以使用帶有注釋的類和沒有注釋的類來測試代碼。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM