博主首页

spring通过java代码将对象放入spring容器,动态代理

java代码动态添加对象到spring容器

    @Autowired
    public  DefaultListableBeanFactory defaultBeanFactory;



           defaultBeanFactory.registerSingleton("a345",sysDict);

 

根据动态代理,创建代理对象,也可以动态创建对应的实现类,进行动态添加到spring容器中,在实现通用增删改查接口时使用过

            ProxyFactory result = new ProxyFactory();
            //代理对象/代理源
            result.setTarget(sysDict);
            //添加方法增强
            TestAop testAop = new TestAop();
            result.addAdvice(testAop);

            Object proxy = result.getProxy();
            defaultBeanFactory.registerSingleton("a345",proxy);
            SysDict a345 = context.getBean("a345", SysDict.class);
            a345.test01();
@Component
public class TestAop implements MethodInterceptor {

    @Nullable
    @Override
    public Object invoke(@Nonnull MethodInvocation methodInvocation) throws Throwable {
        System.out.println(123);
        return methodInvocation.proceed();
    }
}

 

posted @ 2025-01-08 18:14  笑~笑  阅读(15)  评论(0)    收藏  举报