相关疑难解决方法(0)

如何获得由FactoryBean spring创建的bean?

FactoryBean的可用于以编程方式创建,这可能需要复杂的实例化逻辑的对象.

但是,似乎由它创建的bean FactoryBean不会成为弹簧管理.这种解释是否正确?如果是这样,有什么好的解决方法吗?包含一个简短的代码示例来说明我的问题.

ApplicationContext的:

<bean id="searcher" class="some.package.SearcherFactory" /> 
<bean id="service" class="some.package.Service" /> 
Run Code Online (Sandbox Code Playgroud)

工厂实施:

public class SearcherFactory implements FactoryBean<Searcher> {

    @Override
    public Searcher getObject() throws Exception {
        return new Searcher(); // not so complex after all ;)
    }

    @Override
    public Class<Searcher> getObjectType() {
        return Searcher.class;
    }
    .... 
}
Run Code Online (Sandbox Code Playgroud)

工厂创建的类:

public class Searcher() {
      private Service service;

      @Autowired
      public void setService(Service service) {
           // never invoked
           this.service=service;
      } 
}
Run Code Online (Sandbox Code Playgroud)

java spring autowired

33
推荐指数
3
解决办法
7万
查看次数

如何动态地将参数传递给Spring bean

我是Spring的新手.

这是bean注册的代码:

<bean id="user" class="User_Imple"> </bean>
<bean id="userdeff" class="User"> </bean>
Run Code Online (Sandbox Code Playgroud)

这是我的bean类:

public class User_Imple implements Master_interface {

    private int id;
    private User user; // here user is another class

    public User_Imple() {
        super();
    }

    public User_Imple(int id, User user) {
        super();
        this.id = id;
        this.user = user;
    }

    // some extra functions here....
}
Run Code Online (Sandbox Code Playgroud)

这是我执行操作的主要方法:

public static void main(String arg[]) {

    ApplicationContext context = new ClassPathXmlApplicationContext("/bean.xml");
    Master_interface master = (Master_interface)context.getBean("user");

    // here is my some operations..
    int id = ... …
Run Code Online (Sandbox Code Playgroud)

java spring javabeans

20
推荐指数
2
解决办法
8万
查看次数

Spring:Lookup方法注入、Provider&lt;T&gt;、ObjectFactory和factoryBean之间的区别

Lookup 方法注入Provider<T>ObjectFactoryfactoryBean. 如果我想要将原型的新实例(多次)转换为单例,那么哪一个是最佳解决方案?如果我想要将原型 bean 的新实例(多次)转换为原型?

spring spring-mvc

5
推荐指数
1
解决办法
2409
查看次数

Spring Boot 自定义 Bean 加载器

我正在将 JDBI 与 Spring Boot 结合使用。我遵循了这个指南,这导致必须创建一个类:JdbiConfig其中,对于应用程序上下文中想要的每个 dao,您必须添加:

@Bean
public SomeDao someDao(Jdbi jdbi) {
    return jdbi.onDemand(SomeDao.class);
}
Run Code Online (Sandbox Code Playgroud)

我想知道 Spring Boot 中是否有某种方法可以创建自定义处理器来创建 bean 并将它们放入应用程序上下文中。关于这如何工作,我有两个想法:

  1. 使用自定义注释对 DAO 进行注释,@JdbiDao并编写一些内容来获取它们。我曾尝试将这些手动注入到应用程序启动中,但问题是它们可能无法及时加载以进行注入,因为在类扫描期间无法识别它们。
  2. 创建一个JdbiDao每个存储库接口都可以扩展的类。然后用标准注释接口@Repository并创建自定义处理器以通过以下方式加载它们Jdbi#onDemand

这是我的两个想法,但我不知道有什么方法可以实现。我坚持手动创建一个 bean?以前解决过这个问题吗?

java jdbi spring-boot jdbi3 spring-autoconfiguration

5
推荐指数
1
解决办法
255
查看次数