Tag: spring bean

如何以动态方式创建Spring Beans。 使用Quartz SchedulerFactoryBean

我有一个QuartzJobConfig类,我注册了我的Spring-Quartz-Beans 。 我遵循了SchedulerFactoryBean , JobDetailFactoryBean和CronTriggerFactoryBean的指令。 我的作业在应用程序外部的yaml文件中配置。 意味着我必须在应用程序启动时动态创建Bean。 我的配置: channelPartnerConfiguration: channelPartners: – code: Job1 jobConfigs: – schedule: 0 * * ? * MON-FRI name: Job1 daily hotel: false allotment: true enabled: true – schedule: 30 * * ? * MON-FRI name: Job2 weekly hotel: true allotment: false enabled: true … 我的配置类: @Configuration public class QuartzJobConfig implements […]

Spring @Value(“$ {}”)通常为null

我正在使用Spring Boot应用程序。 在某些@Component类中,加载@Value字段,而不是在其他类上,它们始终为null 。 似乎在创建@Bean / @Component后加载了@Bean 。 我需要从@Bean的属性文件加载一些值。 你有什么建议吗?

Camel – 将特定参数从路由传递到genericsbean方法

假设我有一条看起来像这样的Camel路线: from(“direct:myRoute”) .setHeader(“someHeader”, simple(“some header value”)) .beanRef(“myBean”, “beanMethod”); 我有一个我cannot change的bean,看起来像这样: public class MyBean { public void beanMethod(String headerExpected) { // do something with the value here. } } 基本上,我想将myRoute中someHeader的值传递给MyBean中的 beanMethod 。 知道beanMethod可以接受一个String ,我如何从路由中传递标题someHeader的值,以便在beanMethod中接受它作为String?

是否可以在Spring Framework中使用注释设置bean名称?

我有这样一个bean: @Bean public String myBean(){ return “My bean”; } 我想自动assembly它: @Autowired @Qualifier(“myBean”) public void setMyBean(String myBean){ this.myBean=myBean; } 我需要这样的东西: @Bean(name=”myCustomBean”) 是否可以使用开箱即用的bean自定义名称? 如果不可能开箱即可,那么如何创建这样的bean呢?

Spring自动assembly订单和@PostConstruct

我对Spring中的自动布线顺序和@PostConstruct逻辑有疑问。 例如,下面的演示代码我有一个主要的Spring Boot类: @SpringBootApplication public class Demo1Application { @Autowired BeanB beanb; public static void main(String[] args) { SpringApplication.run(Demo1Application.class, args); } } 和2 @Service定义: @Service public class BeanB { @Autowired private BeanA beana ; @PostConstruct public void init(){ System.out.println(“beanb is called”); } public void printMe(){ System.out.println(“print me is called in Bean B”); } } @Service public […]

自动装入列表时的Bean顺序

我已经定义了一个接口IWorker ,它的一些实现作为WorkerA和WorkerB ,都用@Component注释。 然后我通过以下方式将它们自动装入我的应用: @Autowired private List workers = new ArrayList(); 工人被列入清单的顺序取决于什么? 如何通过我的applicationContext.xml将未使用@Component注释的其他WorkerC和WorkerD (也是IWorker实现)自动装入同一列表? 是否保留了xml中WorkerC和WorkerD的顺序? 是否有一条规则可以依赖于工人A,B,C和D将被列入清单的顺序?

JavaConfig中的Spring Bean别名

我有一个@Service注释类,它提供了我可以在我的所有项目中使用的核心function: @Service public class MyService {} 和另一个扩展它以实现项目特定的东西: @Service public class ExtendedMyService extends MyService {} 现在我想配置一个bean别名,以便在使用属性自动assembly它时能够使用@Qualifier(“MyServiceAlias”) : # MyService qualifier (default: myService) myService.qualifier=extendedMyService 在XML中它看起来像: 这里也讨论了它,但我只需要使用XML,JavaConfig。 是否可能以及如何实现?

Spring bean与运行时构造函数参数

我想在Spring Java配置中创建一个Spring bean,并在运行时传递一些构造函数参数。 我创建了以下Java配置,其中有一个bean fixedLengthReport ,它需要构造函数中的一些参数。 @Configuration Public AppConfig { @Autowrire Dao dao; @Bean @Scope(value = “prototype”) **//SourceSystem can change at runtime** public FixedLengthReport fixedLengthReport(String sourceSystem) { return new TdctFixedLengthReport(sourceSystem, dao); } 但我收到错误, sourceSystem无法连接,因为没有找到bean。 如何使用运行时构造函数参数创建bean? 我使用的是Spring 4.2

JavaBean和Spring bean之间的区别

我是Spring MVC的新手,对Java中Java bean的使用有一点了解。 Java bean和Spring bean之间的基本区别是什么?

Spring在运行时选择bean实现

我正在使用带有注释的Spring Beans,我需要在运行时选择不同的实现。 @Service public class MyService { public void test(){…} } 例如对于windows的平台,我需要MyServiceWin extending MyService ,对于linux平台,我需要MyServiceLnx extending MyService 。 现在我只知道一个可怕的解决方案: @Service public class MyService { private MyService impl; @PostInit public void init(){ if(windows) impl=new MyServiceWin(); else impl=new MyServiceLnx(); } public void test(){ impl.test(); } } 请考虑我只使用注释而不是XML配置。