注解开发模式

1.注解开发定义bean

  • 使用@Component定义bean
  1. @Controller:用于表现层bean定义
  2. @Service:用于业务层bean定义
  3. @Repository:用于数据层bean定义
  • 核心配置文件中通过组件扫描加载bean

2.纯注解开发

  • Java类代替Spring核心配置文件
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:context="http://www.springframework.org/schema/context"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd">
    <context:component-scan base-package="com.itheima"/>
</beans>

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

  1. 相同颜色的就是注解所替代的部分。 
  2. @Configuration注解用于设定当前类为配置类
  3. @ComponentScan注解用于设定扫描路径,此注解只能添加一次,多个数据使用数组格式

@ComponentScan({"com.itheima.service","com.itheima.dao"})

  •  读取Spring核心配置文件初始化容器对象切换成读取Java配置类初始化容器对象
//加载配置文件初始化容器
ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");
//加载配置类初始化容器
ApplicationContext ctx = new AnnotationConfigApplicationContext(SpringConfig.class);

3.bean管理

  • 使用@Scope定义bean作用范围

@Repository

@Scope("singleton"/"prototype")(单例/多例)

  • 使用@PostConstruct、@PreDestroy定义bean生命周期

@PostConstruct

public void init(){

        System.out.println(".....")

}

@PreDestroy

public void destroy(){

        System.out.println(".....")

}

4.依赖注入 

  • @Autowired(按类型)

        注意:

  1. 自动装配基于反射设计创建对象并暴力反射对应属性为私有属性初始化数据,因此无需提供setter方法
  2. 自动装配建议使用无参构造方法创建对象(默认),如果不提供,请提供唯一构造方法
  • 使用@Qualifier注解开启指定名称装配bean
  1. 注意:@Qualifier注解无法单独使用,必须配合@Autowired注解使用
  • @value(“  ”)注解实现简单类型注入
  • 加载properties文件
  1. 使用@propertySource注解加载properties文件
  2. 路径仅支持单一文件配置,多文件请使用数组格式配置,不支持*通配符

5.管理第三方bean

  • @Bean配置第三方bean,创建方法获取第三方对象
  • 使用独立的配置类管理第三方bean
  • 将独立的配置类加入核心配置
  1. 导入式:使用@Import注解手动加入配置类到核心配置,此注解只能添加一次,多个数据请用数组格式。
  2. 扫描式(不推荐,隐藏性太强)
  • 第三方bean依赖注入
  1. 引用类型:方法形参
  2. 简单类型:成员变量
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值