Spring 配置方案(注解的使用)

Spring 配置方案(注解的使用)

一、使用注解+xml配置文件

替换:

<bean id="" class="" init-method="" destroy-method="" scope="" autowire="">
    <property></property>
    <constructor-arg></constructor-arg>
</bean>

1、注入类

(1)@Component
1、含义

将注解所修饰的类,注入spring容器

2、位置

使用在类的前面

3、语法

@Component(value = “id”)

如果省略 value = “id” 默认注入的id为类的名称且首字母小写

4、注意

不可以单独使用

在xml中配合 <context:component-scan base-package=“”></context:component-scan> 使用

(2)@Repostory 注入数据访问层
(3)@Service 注入业务层
(5)@Controller 注入控制层

以上三个注解与 Component 注解语法一致,主要用在三层架构中

2、注入数据

(1)@Value()
1、含义

向属性注入基本类型与String

2、语法
  • @Value(“数据”) ----------> 直接把数据写死
  • @Value(“${key}”) ---------> 使用键值对进行传值,值需要在一个资源文件中获取
  • 在xml配置文件中加入以下标签,加载资源文件
<context:property-placeholder location="资源文件所在路径"></context:property-placeholder>
3、位置

属性

(2)Autowired
1、含义

通过“set”方法【set 方法可以省略】,按照==“类型”==自动装配,如果类型冲突,则按照“名称”转配,即属性名装配

2、位置

属性

3、注意
  1. 按类型装配如果冲突切换为名称装配
  2. 按类型装配如果冲突切换为名称装配,如果名称也没有则会抛异常 NoUniqueBeanDefinitionException
  3. 按类型装配没一个匹配 NoSuchBeanDefinitionException

说明:一般@Component(或@Repostory @Service @Controller )、Autowired 三个一起使用

  • @Component(或@Repostory @Service @Controller )负责声明需要加入spring容器的类,
  • 配合扫描器在xml中配合 <context:component-scan base-package=“”></context:component-scan> 使用,用于扫描整个包路径中需要加入spring容器的类,并将其加入spring容器
  • Autowired 在使用上述注解加入容器成功后,如果需要使用容器创建,则需要配合Autowired注解自动按类型装配,才可成功创建对象

3、其他注解

1、@Primary
  • 含义

在类型装配冲突下,此注解所修饰的类作为首选项

  • 位置

  • 注意

不能单独使用

2、@Qualifier
  • 含义

按照名称装配

  • 位置

属性

  • 注意

不能单独使用

3、@Resource
  • 含义

按照名称装配

  • 位置

属性

  • 注意

单独使用

4、@Scope
  • 含义

作用域 single

  • 位置

  • 注意

不能单独使用

  • 举例
@Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE)
5、@PreDestroy
  • 含义

替换destory-method 销毁

  • 位置

方法

  • 注意

单独用

6、@PostConstruct
  • 含义

替换 init-method 初始化

  • 位置

方法

  • 注意

单独使用

二、注解+JavaConfig配置类

1、@Configuration

  • 含义:配置类
  • 注意:AnnotationConfigApplicationContext
  • 用在定义类之前,声明此类为配置类

2、@ComponentScan

  • 替换:<context:component-scan base-package=“”></context:component-scan>
  • 相当于扫描器
  • 用在需要注入到spring容器中的类

3、@PropertySource()

  • 替换:<context:property-placeholder location=“”></context:property-placeholder>
  • 加载资源文件

4、@Import()

  • 含义:导入其他配置类
  • 需要传入指定配置类的class对象
@Import(DataSourceConfig.class)

5、@Bean

  • 含义:注入类;方法返回值为class 方法名称为id
  • 位置:修饰方法
  • 注意:单独使用,无需扫描
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Kⅈꫛᧁ269

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值