当前位置: 首页 > news >正文

Spring—注解开发

(一)注解开发定义Bean

1.1 取消在xml文件中的< bean >标签,去那个类前面添加@Component()注解,然后在xml文件中添加component感知:
在这里插入图片描述
base-package就是到时候去哪个包下找这个类
如果在括号内起了别名,到时候获取Bean,就是getBean(“别名”);
如果没有在括号内起别名也可以,到时候获取Bean就是getBean(类名.class)
在这里插入图片描述

1.2 不使用@component,而是使用@Repository,@Controller,@Service这一系列注解。分别代表数据层,控制层,服务层。每一个都跟component作用一致,只不过是用来区分清楚这个Bean是属于哪一层的。
在这里插入图片描述

(二)纯注解开发

主要是把原先的配置文件的方式取代了。以下图为例:
在这里插入图片描述
红框外面是容器部分,红框内是核心部分,纯注解使用@Configuration来注明本类(java)是配置类,使用@ConponentScan(“Bean对象类所在包名”)
在这里插入图片描述
同样的,加载配置文件的方式也需要改变:
在这里插入图片描述
括号内填写configuration文件的类名.class。
所以整体总结:

xml容器 ---> @Configuration
Bean ---> @Component
加载方式 ---> annotationConfigApplicationContext(类名.class)

(三)注解定义作用域,与Bean的生命周期

作用域:@Scope(“singleton(prototype)”)
生命周期

@PostConstructor() ---> 在构造方法之后,这应用于在构造方法之后执行的方法,例如init()初始化操作
@PreDestroy() ---> 在销毁之前,这适用于在销毁操作之前执行的方法。如果要确保该方法执行,则应该在主函数的末尾手动关闭容器。

(四)注解自动装配,加载properties文件

自动装配:@Autowired
在这里插入图片描述
如果有多个类都实现了同一个接口,则需要辅助配置 @Qulifier(),来避免出现“不唯一”的异常(因为多个类实现同一接口,它就不知道是该注入哪个类了),并且Qualifier必须要搭配Autowired来使用
在这里插入图片描述
简单类型注入
使用@Value注解:
在这里插入图片描述
加载properties文件
上述的简单注入如果注入的是来自外界的properties文件,则需要使用注解注明数据源
在这里插入图片描述
在这个配置类中,使用@PropertySource(“…/properties”)来注明
细节注意:使用注解配置时,不允许在文件路径中使用通配符。

(五)第三方Bean管理:

(1)Bean管理:

1.1 导入式:
在内部创建某个类的构造方法,然后使用@Bean来界定该类对象为Bean。为了美观,因此将Bean封装在某个类(注意是非配置类)中,然后在主配置文件中使用import(包名.class)。这种方式叫导入式
在这里插入图片描述
说白了就是在其他类中配置Bean,然后在主配置类中导入该类就行。
1.2 扫描式:
将配置Bean对象的那个类注明是@Configuration,然后在主配置类中注明是@ConponentScan(精确到包名)
在这里插入图片描述

(2)第三方Bean依赖注入:

2.1 简单类型
可以在方法外定义好几个变量,给上@Value注释,然后在方法中给出变量即可。如下:
在这里插入图片描述

2.2 引用类型
往方法里传入个参数就行,只要这个参数对象明确是@Bean注明过的:
在这里插入图片描述

XML配置与注解配置比较:

在这里插入图片描述

http://www.dtcms.com/a/513046.html

相关文章:

  • Hugging Face 2025年10月21日 Top 10 热门AI模型
  • 事件网站推广杭州平面设计公司
  • 粮食网站建设的背景及意义大型网站制作怎么样
  • LangGraph 入门,层级介绍LangGraph
  • 360doc 网站怎么做江西专业网站建设
  • 青岛贸易公司 网站制作济南网站制作定制公司
  • 西部数码网站管理助手 ftp密码重庆市建设工程信息网怎么录项目信息
  • Linux | i.MX6ULL 网络测试方法
  • 网站建设案例收费吗靖江网站定制
  • debug - eclipseCPP + openocd + 引入arm-gcc makefile工程来单步调试
  • 数据结构——十字链表
  • 怎么自己编程做网站北京建设工程主管部门网站
  • 基于文本+视觉混合输入的恶意流量检测方法猜想
  • spark实战:python股票数据分析可视化系统 Flask框架 金融数据分析 Echarts可视化 大数据技术 ✅
  • 连云港网站关键字优化市场自己做网站背景图片
  • wordpress文章加预览图外贸seo推广
  • Java面试精选:如何轻松的拿下offer?
  • 网站前瞻性_新流量机会内容建设分析华为邮箱注册
  • Java-集合(开发的重点)
  • docker技术之container与docker介绍
  • 如何做外贸soho做网站网站开发html5技术
  • 外国人做的甲骨文网站做网站需要切图吗
  • Redis如何解决key冲突?
  • 解决 QML 中使用 Qt Charts 崩溃的三个关键步骤
  • 2025算力行业趋势下的4090云主机租赁方案
  • 一起做网站17沧州网站建设哪家好
  • 如何在百度提交网站莲湖免费做网站
  • 网站统计排名做装修网站价格
  • 基于 Redis 的布隆过滤器:高效的数据存在性检查
  • 【经典书籍】C++ Primer 第9章顺序容器精华讲解