Spring的炼气之路(炼气三层)

目录

一、容器的介绍

1.1 创建容器

1.1.1 类路径下的XML配置文件   

1.1.2 文件系统下的XML配置文件

1.2 获取bean

1.2.1 使用baen名称获取

1.2.2 使用bean名称+指定类型

1.2.3 使用bean类型获取

二、注解开发

1.1 注解开发bean

1.2 纯注解开发

三、注解开发之bean的管理

四、注解开发之自动装配

 4.1 按类型注入bean

 4.2 按名称注入bean

4.3 使用@value进行简单类型注入

4.4 注解读取properties配置文件


         前言:Spring炼气之路(炼气二层)-CSDN博客

一、容器的介绍

1.1 创建容器

                创建容器有两种方式,类路径下的XML配置文件文件系统下的XML配置文件

1.1.1 类路径下的XML配置文件   

ApplicationContext actx = new ClassPathXmlApplicationContext("applicationContext.xml");

1.1.2 文件系统下的XML配置文件

ApplicationContext ctx = new FileSystemXmlApplicationContext("applicationContext.xml文件的绝对路径");

1.2 获取bean

                bean的三种获取方式

1.2.1 使用baen名称获取

 BookDao bookDao = (BookDao) actx.getBean("bookDao");

1.2.2 使用bean名称+指定类型

BookDao bookDao = actx.getBean("bookDao",BookDao.class);

1.2.3 使用bean类型获取

BookDao bookDao = actx.getBean(BookDao.class);

二、注解开发

1.1 注解开发bean

                第一步:在需要注解的类上加上@Component

@Component("bookDao")
public class BookDaoImpl implements BookDao {}

                第二步:在applicationContext.xml配置文件中进行包扫描

<context:component-scan base-package="com.zhang.dao.impl" />

注:对于@Component注解,还衍生出了其他三个注解

     表现层:           @Controller

     业务层              @Service

     数据层 :             @Repository

1.2 纯注解开发

                使用Java类替代配置文件 

步骤:

                ①第一步:创建配置java类

public class SpringConfig {}

                ②第二步:添加@Configuration注解替换applicationContext.xml,表示这是一个配置类

@Configuration
public class SpringConfig {}

                ③第三步:在配置类上添加包扫描注解@ComponentScan

@Configuration
@ComponentScan("com.zhang")
public class SpringConfig {}

在这种模式下,如何初始化容器?

//加载配置类初始化容器
ApplicationContext ctx = new AnnotationConfigApplicationContext(SpringConfig.class);

三、注解开发之bean的管理

3.1 bean的作用范围注解

                @Scope设置bean的作用范围

3.2 bean的生命周期注解 

                @PostConstruct 初始化方法

                @PreDestroy  销毁方法

四、注解开发之自动装配

 4.1 按类型注入bean

            使用@Autowired  (按类型注入)注解

注:@Autowired可以写在属性上,也可也写在setter方法上。

 4.2 按名称注入bean

        使用@Autowired+@Qualifier 注解

注:@Qualifier不能独立使用,必须和@Autowired一起使用

4.3 使用@value进行简单类型注入

        

@Value("zhang")
private String name;

4.4 注解读取properties配置文件

                ①:在配置类上添加@PropertySource注解

                ②:通过${   } 读取properties配置文件的简单类型数据

@Value("${name}")

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/757106.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

漫谈微服务网关

一、什么是服务网关 服务网关 路由转发 过滤器 1、路由转发&#xff1a;接收一切外界请求&#xff0c;转发到后端的微服务上去&#xff1b; 2、过滤器&#xff1a;在服务网关中可以完成一系列的横切功能&#xff0c;例如权限校验、限流以及监控等&#xff0c;这些都可以通过…

【Linux】Linux开发工具-vim / 编译器-gcc/g++ / 调试器-gdb / git操作 / 项目自动化构建工具-make/Makefile

主页&#xff1a;醋溜马桶圈-CSDN博客 专栏&#xff1a;Linux_醋溜马桶圈的博客-CSDN博客 gitee&#xff1a;mnxcc (mnxcc) - Gitee.com 目录 1.在Linux写自己的第一个程序 1.1 nano指令 1.2 nano指令的使用 1.2.1 介绍 1.2.2 演示 1.2.2.1 创建.c文件 1.2.2.2 nano cod…

Java后端八股------设计模式

Coffee可以设计成接口。 b

EPSON XV4001BC陀螺仪传感器汽车导航系统的应用

近年来为了提高汽车应用系统的可靠性,传感器融合系统被越来越多的应用到汽车领域,如汽车导航系统中的行人检测和预碰撞警告等,通过提供精准的导航信息,为驾驶员提供更安全,更稳定,更舒适的出行体验,例如在行人检测系统中,只使用低成本的红外传感器不能检测到行人的实际位置,而利…

python 八大排序算法

1、选择排序 选择排序是一种简单直观的排序算法&#xff0c;其工作原理是在未排序序列中找到最小&#xff08;或最大&#xff09;的元素&#xff0c;存放到排序序列的起始位置&#xff0c;然后继续寻找剩余未排序序列中的最小&#xff08;或最大&#xff09;元素&#xff0c;放…

LangChain + Qwen(DashScope)

文章目录 引言DashScope API KEY关于 DashScope 和 ModelScope 代码可用模型及费用模型说明计费单价免费额度 引言 常见的 RAG 示例&#xff0c;一般使用 OpenAI&#xff0c;你也可以使用 Qwen 作为 LLM。 在 LangChain 中&#xff0c;调用 Tongyi 来实现。&#xff08;而不是…

本地gitlab-runner的创建与注册

引言 之前通过一些方式在本地创建runner&#xff0c;时而会出现一些未知的坑&#xff0c;所以写下本文记录runner可以无坑创建的方式。 以下注册runner到相应仓库的前提是已经在本地安装了gitlab-runner 具体安装方式见官网 本地gitlab-runner安装常用的指令 查看gitlab r…

5G网络架构及技术(一):入门级介绍

参考资料&#xff1a; [1] 5G网络架构&#xff0c;March 15, 2020 / By Adnan Ghayas [2] 5G应用场景&#xff0c;June 2, 2021 / By Adnan Ghayas [3] 独立和非独立5G网络&#xff0c;September 19, 2020 / By Adnan Ghayas 5G网络架构&#xff08;一&#xff09;&#xff1a;…

Android14音频进阶:AudioFlinger究竟如何混音?(六十三)

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀 优质专栏:多媒体系统工程师系列【原创干货持续更新中……】🚀 人生格言: 人生从来没有捷径,只…

高效的Gitlab Flow最佳实践

文章目录 一、git flow二、github flow三、gitlab flow四、基于gitlab flow的最佳实践1.语义化版本号2.测试发布3.bug修复 参考 业界包含三种flow&#xff1a; Git flowGithub flowGitlab flow 三种工作流程&#xff0c;有一个共同点&#xff1a;都采用"功能驱动式开发&…

SQL server服务连接失败,通过端口1433连接到主机 localhost的 TCP/IP 连接失败

SQL server服务连接失败&#xff0c;通过端口1433连接到主机 localhost的 TCP/IP 连接失败 出现这个错误的时候&#xff0c;首先确保sql的服务正常启动 通常来说正常安装的SQL server之后&#xff0c;会自带一个软件 打开&#xff1a;SQL server配置管理器 确认一下红框内的…

X1 grok-1 开源大语言模型下载

Grok 前言 我们正在发布我们的大型语言模型 Grok-1 的基本模型权重和网络架构。Grok-1 是一个 3140 亿参数的专家混合模型&#xff0c;由 xAI 从头开始训练。 这是 2023 年 10 月结束的 Grok-1 预训练阶段的原始基础模型检查点。这意味着该模型不会针对任何特定应用&#xff…

【c语言篇】每日一题-pta-实验11-2-9 链表逆置

题目如下&#xff1a; 裁判测试程序样例&#xff1a; #include <stdio.h> #include <stdlib.h>struct ListNode {int data;struct ListNode *next; };struct ListNode *createlist(); /*裁判实现&#xff0c;细节不表*/ struct ListNode *reverse( struct ListNod…

高精度AI火灾烟雾检测算法,助力打造更加安全的楼宇环境

一、方案背景 近日&#xff0c;南京居民楼火灾事故导致15人死亡的新闻闹得沸沸扬扬&#xff0c;这一事件又激起了大家对楼宇火灾隐患的进一步担忧。事后我们除了思考政府、消防及物业部门应对此事的解决办法&#xff0c;我们还应该思考如何利用现有的技术帮助人们减少此类事情的…

[Qt学习笔记]Halcon窗口界面上显示文字的字体尺寸、样式修改

1、查看Halcon帮助文档 养成良好的查资料习惯&#xff0c;可以实现事半功倍。 1.1 Halcon12和Halcon20不同版本的帮助有所不同 在Halcon12中&#xff0c;有set_font和set_display_font两个算子&#xff0c;其中set_display_font是本地函数形式&#xff0c;所以最终的实现算子…

Android Studio实现内容丰富的安卓医院医生招聘平台

获取源码请点击文章末尾QQ名片联系&#xff0c;源码不免费&#xff0c;尊重创作&#xff0c;尊重劳动 项目编号120 1.开发环境android stuido jdk1.8 eclipse mysql tomcat 2.功能介绍 安卓端&#xff1a; 1.注册登录 2.查看公告 3.查看职位列表 4.收藏功能&#xff0c; 5.投递…

C#实战分享--爬虫的基础原理及实现

关注我&#xff0c;持续分享逻辑思维&管理思维&#xff1b; 可提供大厂面试辅导、及定制化求职/在职/管理/架构辅导&#xff1b; 有意找工作的同学&#xff0c;请参考博主的原创&#xff1a;《面试官心得--面试前应该如何准备》&#xff0c;《面试官心得--面试时如何进行自…

rust - 将windows剪贴板的截图保存为png

本文提供了将windows系统的截图另存为png格式图片的方法。 添加依赖 cargo add clipboard-win cargo add image cargo add windows配置修改windows依赖特性 [dependencies] image "0.25.0"[target.cfg(windows).dependencies] windows "0.51.1" clipb…

ubuntu 如何使用阿里云盘

你好&#xff0c;我是 shengjk1&#xff0c;多年大厂经验&#xff0c;努力构建 通俗易懂的、好玩的编程语言教程。 欢迎关注&#xff01;你会有如下收益&#xff1a; 了解大厂经验拥有和大厂相匹配的技术等 希望看什么&#xff0c;评论或者私信告诉我&#xff01; 文章目录 一…

(简单成功)Mac:命令设置别名

案例&#xff1a;给"ls -l"命令&#xff0c;设置别名通过”ll“快速访问 1、在项目根目录底下查看有无.bash_profile文件&#xff0c;注意这个是个隐藏文件&#xff0c;需要使用ls -a命令查看&#xff1a; 没有.bash_profile新建一个文件&#xff0c; 在最后添加一行…