springboot 中@Bean的注解作用
一.@bean的作用Spring的@Bean注解用于告诉方法,产生一个Bean对象,然后这个Bean对象交给Spring管理。Spring只会调用一次,将这个Bean对象放在自己的IOC容器中。通俗的将就是在服务启动时,在需要初始化的实例,方法,内容时使用。https://www.cnblogs.com/cxuanBlog/p/11179439.htmlhttps://www.jianshu.co
·
一.@bean的作用
Spring的@Bean注解用于告诉方法,产生一个Bean对象,然后这个Bean对象交给Spring管理。Spring只会调用一次,将这个Bean对象放在自己的IOC容器中。
通俗的将就是在服务启动时,实例化一个对象放到ioc容器中,在需要初始化的实例,方法,内容时使用。
未指定bean 的名称,默认采用的是 "方法名" + "首字母小写"的配置方式
https://www.cnblogs.com/cxuanBlog/p/11179439.html
https://www.jianshu.com/p/93727fa9bf23
二.案例
1.定义一个配置文件:
package com.ljf.spring.boot.demo.quartz.config;
import com.ljf.spring.boot.demo.quartz.job.MyDefineQuartz;
import com.ljf.spring.boot.demo.quartz.model.User;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.scheduling.quartz.CronTriggerFactoryBean;
import org.springframework.scheduling.quartz.JobDetailFactoryBean;
import org.springframework.scheduling.quartz.SchedulerFactoryBean;
/**
* @ClassName: QuartsConfig
* @Description: TODO
* @Author: liujianfu
* @Date: 2020/07/27 09:13:13
* @Version: V1.0
**/
@Configuration
public class QuartsConfig {
/**
* 1.创建Job对象
*/
@Bean
public JobDetailFactoryBean jobDetailFactoryBean(){
System.out.println("初始化,创建job对象......");
JobDetailFactoryBean factory = new JobDetailFactoryBean();
//关联我们自己的Job类
factory.setJobClass(MyDefineQuartz.class);
return factory;
}
/**
* 2.Cron Trigger
*/
@Bean
public CronTriggerFactoryBean cronTriggerFactoryBean(JobDetailFactoryBean jobDetailFactoryBean){
System.out.println("初始化,trigger对象......");
CronTriggerFactoryBean factory = new CronTriggerFactoryBean();
factory.setJobDetail(jobDetailFactoryBean.getObject());
//设置触发时间
factory.setCronExpression("0/2 * * * * ?");
return factory;
}
/**
* 3.创建Scheduler对象
*/
@Bean
public SchedulerFactoryBean schedulerFactoryBean(CronTriggerFactoryBean cronTriggerFactoryBean,User u){
System.out.println("初始化,创建scheduler对象......");
SchedulerFactoryBean factory = new SchedulerFactoryBean();
//关联trigger
factory.setTriggers(cronTriggerFactoryBean.getObject());
System.out.println("初始化u的对象:"+u.getName());
return factory;
}
/**
* @author liujianfu
* @description
* @date 2020/7/27 0027 下午 12:26
* @param []
* @return com.ljf.spring.boot.demo.quartz.model.User
*/
@Bean
public User initUser(){
User u=new User();
u.setId(23);
u.setName("ljf");
return u;
}
}
2.启动类:
package com.ljf.spring.boot.demo.quartz;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
/**
* Hello world!
*
*/
@SpringBootApplication
public class App
{
public static void main( String[] args )
{
SpringApplication.run(App.class, args);
System.out.println( "spring boot 和quarts集成程序启动成功!" );
}
}
3.结果:可以看到服务启动时候,添加@bean的方法都实例化了一个对象,都进行了执行。
四 案例二
更多推荐
已为社区贡献4条内容
所有评论(0)