Java:Spring6--注解开发

一、注解初使用

1、声明Bean的注解

名称@Component/@Controller/@Service/@Repository
类型类注解
位置类定义上方
作用设置该类为spring管理的bean
属性value(默认):定义bean的id

为了增强程序的可读性:

控制器类上使用:Controller、service类上使用:Service、dao类上使用:Repository。

注意:@Component注解不可以添加在接口上,因为接口是无法创建对象的。

配置文件的命名空间为:context命名空间

<?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 http://www.springframework.org/schema/context/spring-context.xsd">

</beans>

2、配置Spring的注解包扫描

在配置类上添加包扫描注解@ComponentScan替换<context:component-scan base-package=""/>

<?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 http://www.springframework.org/schema/context/spring-context.xsd">
    //指定需要扫描的包
    <context:component-scan base-package="com.islunatic.dao"/>
</beans>

@ComponentScan注解用于设定扫描路径,此注解只能添加一次,多个数据请用数组格式

名称@ComponentScan
类型类注解
位置类定义上方
作用设置spring配置类扫描路径,用于加载使用注解格式定义的bean
属性value(默认):扫描路径,此路径可以逐层向下扫描

3、初始化容器对象切换为读取Java配置类初始化容器对象

//加载配置文件初始化容器
ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");
//加载配置类初始化容器
ApplicationContext ctx = new AnnotationConfigApplicationContext(SpringConfig.class);

4、Scope注解

名称@Scope
类型类注解
位置类定义上方
作用设置该类创建对象的作用范围 可用于设置创建出的bean是否为单例对象
属性value(默认):定义bean作用范围, 默认值singleton(单例),可选值prototype(非单例)

5、替换配置类applicationContext.xml

在配置类上添加@Configuration注解,将其标识为一个配置类,替换applicationContext.xml

@Configuration注解用于设定当前类为配置类

名称@Configuration
类型类注解
位置类定义上方
作用设置该类为spring配置类
属性value(默认):定义bean的id

二、负责注入的注解

1、@Value注解进行注入简单数据类型

名称@Value
类型属性注解 或 方法注解
位置属性定义上方 或 标准set方法上方 或 类set方法上方
作用为 基本数据类型 或 字符串类型 属性设置值
属性value(默认):要注入的属性值

 2、@Autowired与@Qualifier注入引用数据类型

名称@Autowired
类型属性注解 或 方法注解 或 方法形参注解
位置属性定义上方 或 标准set方法上方 或 类set方法上方 或 方法形参前面
作用为引用类型属性设置值
属性required:true/false,定义该属性是否允许为null

@Autowired可以写在属性上,也可也写在setter方法上,最简单的处理方式是写在属性上并将setter方法删除掉。

@Autowired默认按照类型(byType)自动装配,如果IOC容器中同类的Bean找到多个,就按照变量名和Bean的名称匹配。因为变量名叫UserDao而容器中也有一个userDao,所以可以成功注入。

名称@Qualifier
类型属性注解 或 方法注解
位置属性定义上方 或 标准set方法上方 或 类set方法上方
作用为引用类型属性指定注入的beanId
属性value(默认):设置注入的beanId

@Autowired注解默认根据类型注入。要根据名称注入的话,需要配合@Qualifier注解一起用。

 3、@Resource注入引用数据类型

该注解是标准注解,更加具有通用性。

使用@Resourse注解需要导入依赖 

<dependency>
  <groupId>jakarta.annotation</groupId>
  <artifactId>jakarta.annotation-api</artifactId>
  <version>2.1.1</version>
</dependency>

三、配置第三方Bean和生命周期注解

1、配置第三方Bean

名称@Bean
类型方法注解
位置方法定义上方
作用设置该方法的返回值作为spring管理的bean
属性value(默认):定义bean的id
名称@Import
类型类注解
位置类定义上方
作用导入配置类
属性value(默认):定义导入的配置类类名, 当配置类有多个时使用数组格式一次性导入多个配置类

扫描注解可以移除、@Import参数需要的是一个数组,可以引入多个配置类、但是只能写一次。

2、生命周期

名称@PostConstruct
类型方法注解
位置方法上
作用设置该方法为初始化方法
名称@PreDestroy
类型方法注解
位置方法上
作用设置该方法为销毁方法

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

IsLuNaTiC

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

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

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

打赏作者

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

抵扣说明:

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

余额充值