spring jdbctemplate 空指针_spring--bean

一.什么spring-bean:

Spring bean是Spring框架在运行时管理对象。Spring bean是任何Spring应用程序的基本构建块。你编写的大多数应用程序逻辑代码都将放在Spring bean中。

Spring bean的管理包括:

  • 创建一个对象
  • 提供依赖项(例如其他bean,配置属性)
  • 拦截对象方法调用以提供额外的框架功能
  • 销毁一个对象

二:如何定义spring-bean

如你所知,Spring负责创建bean对象。但首先,你需要告诉框架它应该创建哪些对象。你是怎么做到的?

创建bean的几种方式:

(1):通过xml配置文件

创建bean.xml

v2-25be70fd0986e8bb79e1b7fc8fbacbd2_b.jpg

测试:

v2-6eb339887b3beb019253d14dc3dde9ae_b.jpg

打印结果:

v2-7ff5a03794c7d912591e66800686769e_b.jpg

(2):基于@Configuration 和@bean注解

说明:

@Configuration相当于配置文件中的<beans />标签,里面可以配置bean。表示该类为一个配置文件类

@bean:用@Bean注解的方法,会实例化、配置并初始化一个新的对象,这个对象会由spring IoC 容器管理。Bean可理解为用spring的时候xml里面的<bean>标签

创建配置类:

v2-d40ebad49aba92fcda4eab8757992617_b.jpg

测试:

v2-a797a1b29a5a72e30a695f78b8846b69_b.jpg

打印结果:

v2-ad0edf840f77ae6bf53cb249c14e5ae2_b.png

(3):基于@Configuration, @ComponentScan 和@Componet、@service 、@controller、@Repository 注解方式

说明:@Repository 据访问层,也可以说用于标注数据访问组件,即DAO组件.

@Componet:把普通pojo实例化到spring容器中,相当于配置文件中的bean

创建注入的bean:

v2-903d7e9c4d4321d1373c7d2ff4420a97_b.jpg

创建配置类:

v2-5b5d6b904e78b05ed10bd72c45dc7c5e_b.jpg

运行打印:

v2-dc725fe86460d991168d8e5f80a236fd_b.jpg

输出结果:

v2-d29d9d5d9926e7060d81d2777a38a762_b.jpg

(4):基于@Configuration 和@Import注解

说明:@Import 将类导入到springIOC容器中,其他说明请自行百度

v2-a501b46e73e569cdb8165c3362dcad09_b.jpg

(5):基于@Configuration 加@Import 和ImportSelector 接口

ImportSelector接口主要作用是收集需要导入的配置类,如果该接口的实现类同时实现EnvironmentAware, BeanFactoryAware ,BeanClassLoaderAware或者ResourceLoaderAware,那么在调用其selectImports方法之前先调用上述接口中对应的方法,如果需要在所有的@Configuration处理完在导入时可以实现DeferredImportSelector接口

创建application.properties:

v2-cdc3ed6c384c99f809e6bccf4af2062f_b.jpg

创建MyImportSelector 实现ImportSelector,EnvironmentAware:

v2-52b0d612615f00126dbb59b6d2e40168_b.jpg

创建配置类:

v2-243191d1165006eab9badb83fbc5b8ba_b.jpg

说明:@PropertySource注解加载指定的属性文件

测试打印:

v2-d1639d4fff2bcf92eb7b283d905b8d2f_b.png

v2-585fd6588b1d8b528f5b349f1604c5f3_b.jpg

若改为:

v2-bc8adadbcc4034a81a1b1e0a5af7b43a_b.jpg

输出结果:空指针异常:

v2-b150da66c65bcc8f59e919231823c104_b.jpg

(6):基于@Configuration 加@Import 和ImportBeanDefinitionRegistrar接口

创建ImportBeanDefinitionRegistrar:

v2-7d9c9ad9094f399db4de7077731ed225_b.jpg

创建配置类:

v2-fdb645597ecb01613b30cd397996ff48_b.jpg

测试打印:

v2-a7484a72307f1cc0cfde3b563a537b64_b.jpg
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值