Spring纯注解开发的加载配置类,作用范围Scope,生命周期@PostConstruct,@PreDestroy

本文详细介绍了Spring框架中使用注解进行开发的方法,包括如何利用@Component等注解定义Bean,以及@Configuration和@ComponentScan的作用。此外,还探讨了单例模式与原型模式下Bean的实例化区别,并展示了初始化和销毁方法的实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

注解开发
使用component定义bean
@Component("bookDao")

@Component相当于 定义一个bean

<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource">

核心配置文件通过主键扫描加载bean
<context:component-scan base-package="com.itheima"/>
Sping提供@component注解的三个衍生注解
@Controller:用于表现层bean定义
@Service:用于业务层bean定义
@Repository:用于数据层bean定义纯注解开发
java类替代Spring核心配置文件
 

@Configuration
@ComponentScan("com.itheima")
public class SpringConfig(){

}

@Configuration 相当于整个xml结构

@ComponentScan("com.itheima") 代替了

<context:component-scan base-package="com.itheima"/>

加载配置类初始化容器 
ApplicationContext ctx = new AnnotationConfigApplicationContext(SPringConfig.class)

AnnotationConfigApplicationContext acc = new AnnotationConfigApplicationContext(SpringConfig.class);
BookDao bean = acc.getBean(BookDao.class);
System.out.println(bean);

atx.getBean();
注意: 记载配置文件用的是

ClassPathXmlApplicationContext ac = newClassPathXmlApplicationContext();

别搞错了

@Scope("singleton")  单列设计模式 prototype:非单列 一般情况下为默认单列模式

@Scope("prototype")
public class BookDaoImpl implements BookDao {}

AnnotationConfigApplicationContext acc = new AnnotationConfigApplicationContext(SpringConfig.class);
        BookDao bean = acc.getBean(BookDao.class);
        BookDao bean2 = acc.getBean(BookDao.class);
        System.out.println(bean);
        System.out.println(bean2);
        acc.close();


输出:
初始化
com.itheima.dao.impl.BookDaoImpl@c540f5a
com.itheima.dao.impl.BookDaoImpl@770c2e6b
销毁前

这就是非单列模式


@PostConstruct      初始化 写在方法体上面代表本方法体为初始化方法

@PostConstruct
    public void init(){
        System.out.println("初始化");
    }


@PreDestroy      销毁前执行的 写在方法体上面代表本方法体为销毁前执行

@PreDestroy
    public void Destroy(){
        System.out.println("销毁前");
    }

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值