Spring注解开发
简介: Spring注解开发
1. Spring原始注解
- Spring是轻代码而重配置的框架,配置比较繁重,影响开发效率,所以注解开发是一种趋势,注解代替xml配置文件可以简化配置,提高开发效率。
- Spring原始注解主要是替代
<Bean>
的配置
- 注意:
使用注解进行开发时,需要在applicationContext.xml
中配置组件扫描,作用是指定哪个包及其子包下的Bean需要进行扫描以便识别使用注解配置的类、字段和方法。
2. xml 方式配置实现
userDao
userDaoImpl
userService
userServiceImpl
applicationContext.xml
UserController
3. 注解配置方式实现
- 在 UserDaoImpl 下的注解,
@Component("userDao")
来替代 下面 bean 的配置
- userServiceImpl 下
- 在 applicationContext.xml 下配置组件要扫描的包
- 测试:
- xml配置和注解配置达到相同的效果
- 使用
@Component
注解不能马上意识到是哪一层,所以Spring衍生了三个注解:@Repository、@Service、@Controller
,效果和@Component
效果是一样的,可读性好点。
- 注意:使用注解方式时,可以省略 set 方法。如:把 userServiceImpl 中的 set 方法删掉,也能成功运行:
- 因为把注解放在属性上,直接通过反射为属性赋值,下面的方法也可以使用被赋值的属性了
- 但如果使用 xml 配置的时候 set 方法是不能省略的
- 把上面的 @Qualifier("userDao") 注释掉,也能成功运行,直接写@Autowired也能注入。因为@Autowired 是按照数据类型从Spring容器中进行匹配的,当Spring扫描到这个注解之后,它会直接从Spring容器当中找一个 userDao 类型的 bean,找到之后直接注入。如果容器中 UserDao 类型有多个bean,就不能这样写了 。
- 按照类型注入,@Autowired
- 按照名称注入,@Autowired 和 @Qualifier 要一起使用
- @Resources 相当于@Autowired 和 @Qualifier
- @Value 注入普通数据类型,如:把 hello 注入给 driver
- 使用@Value进行字符串的注入
- 使用@Scope标注Bean的范围
- 使用@PostConstruct标注初始化方法,使用@PreDestroy标注销毁方法
- 这里没打印销毁的方法原因是:因为容器还没有关闭程序就执行完了,所以造成销毁的方法还没打印出来
- 手动关闭就可以看到销毁的方法打印了
4. Spring新注解
使用上面的注解还不能全部替代xml配置文件,还需要使用注解替代的配置如下:
- 非自定义的Bean的配置:
<bean>
- 加载properties文件的配置:
<context:property-placeholder>
- 组件扫描的配置:
<context:component-scan>
- 引入其他文件:
<import>
- 下面是实现下使用注解完全替代 xml 文件配置
- 新建一个核心配置类:SpringConfiguration,相当于总配置
@Import({DataSourceConfiguration.class})
里面的值其实是一个数组,可以加载多个类,如:
- 新建数据源配置类:DataSourceConfiguration,相当于分配置
- 测试加载核心配置类创建Spring容器
原文链接
本文为阿里云原创内容,未经允许不得转载。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
2020-10-21 小红书推荐大数据在阿里云上的实践
2019-10-21 云栖深度干货 | 打造“云边一体化”,时序时空数据库TSDB技术原理深度解密