Spring中@Component注解的使用

@component是Spring中的一个注解,用来实现bean的注入

使用注解可以代替配置文件中的内容,在容器内初始化bean

web开发提供三个@Component注解的衍生注解,功能一样,仅仅名字不同,用来区分不同层的架构

@Controller(“”):表现层业务bean

@Service(“”):业务层bean

@Repository(“”):数据层bean

括号里写名字,以后可以用来获取bean


@Scope标签控制bean的设计模式:@Scope(“singleton”):单例设计模式,

@Scope(“prototype”):每次创建对象的时候new一个新的对象


使用注解对bean的初始摧毁进行控制

@PostConstruct:在这里定义函数执行init方法

@PreDestroy:在这里定义函数执行destroy方法


@Autowired:自动根据类型注入

@Component//这是一个需要被管理的bean
public class BookServiceImpl implements BookService {
    @Autowired //自动装配   
    private BookDao bookDao;
    @Override
    public void save() {
        System.out.println("service");
    }
}

要想自动执行init和destroy函数,需要在主函数中配置ShutdownHook,见下代码

public class AppForAnnotation {
    public static void main(String[] args) {

        AnnotationConfigApplicationContext ctx =new AnnotationConfigApplicationContext(SpringConfig.class);
        ctx.registerShutdownHook();//有这行代码才有前面注解下init和destroy函数的执行
        //获取IOC容器里面的bean
        BookDao bookDao = (BookDao) ctx.getBean("bookDao");
        System.out.println(bookDao);
        BookService bookService = ctx.getBean(BookService.class);
        System.out.println(bookService);
    }
}
Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐