JAVA中spring常用语法,spring基础知识回顾

使用java代码配置的基本格式

449ed9c9850e

如果不配置bean的名字,默认是方法名。

可以使用如下格式指定bean的名字:

449ed9c9850e

使用工厂Bean创建bean

Runnable的工厂bean:

449ed9c9850e

配置的是RunnableFactoryBean:

449ed9c9850e

看看怎么使用:

获取RunnableFactoryBean创建的Runnable的bean:

449ed9c9850e

如果需要获取RunnableFactoryBean工厂bean本身:

449ed9c9850e

不需要实现FactoryBean如何实现工厂bean

下面是CatFactory,可以看到该工厂没有实现任何接口,这样就跟spring解耦了:

449ed9c9850e

如何配置:

449ed9c9850e

首先需要创建CatFactory工厂本身,然后由于自动装配,使用该工厂去创建Cat。

bean的Scope

449ed9c9850e

默认bean都是单例,如果需要每次获取都创建一个新的bean,可以进行如上配置。

bean创建之后和销毁之前需要进行定制——实现接口

449ed9c9850e

上面实现了两个接口InitializingBean,DisposableBean。

bean创建之后和销毁之前需要进行定制——不实现接口

只是单纯的一个java类,注意@Component,由于我使用的是java代码配置的方式,我不是使用扫描的方式,所以对于我来说是没有任何作用的。

449ed9c9850e

使用@Bean的initMethod,destroyMethod:

449ed9c9850e

bean创建之后和销毁之前需要进行定制——不实现接口使用注解

下面使用了@PostConstruct和@PreDestroy注解,请注意为什么@Component是无效的,而@PostConstruct和@PreDestroy是有效的:

449ed9c9850e

下面同样是java配置生成bean的方法:

449ed9c9850e

以上代码是如何组织起来的

如果是在java代码中配置,则全部都是写在MyConfig该类中。而在AnnotationConfigApplicationContext如下书写:

449ed9c9850e

之前提到的@Component配置无效,怎么让它生效呢?

把加了@Component注解的类也放到AnnotationConfigApplicationContext参数中。

当然也可以采用扫描的方式。

449ed9c9850e

spring提供的四种bean注解

这四种bean的作用都是一样的,区别只是语义上的:

@Component

449ed9c9850e

@Repository放在Dao层:

449ed9c9850e

@Service放在服务层上:

449ed9c9850e

@Controller注解放在控制器上:

449ed9c9850e

装配的三种方式

449ed9c9850e

前面两种都spring自带的,不用引入新的jar包。

但是最后一种是java某个标准的,需要引入新包:

449ed9c9850e

实例化AnnotationConfigApplicationContext的几种方式

传递需要扫描的包:

449ed9c9850e

传递java配置类:

449ed9c9850e

可以在java配置类中设置扫描的包

449ed9c9850e

上面配置了排除,请注意实例化AnnotationConfigApplicationContext时候参数是PackageScan.class。但是在com.test.spring4.spring4_test_1包下还有MyConfig类:

449ed9c9850e

需要注意PackageScan.class中配置的排除,排除不了MyConfig中配置的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值