96SEO 2026-02-20 09:34 12
1.传统方式造车2.传统方法的弊端3.IOC的引入3.IOC对于图书管理系统进行改进初识4.注解的使用说明4.1controller注解4.2service注解4.3component注解4.4关于spring命名的问题4.5component重命名4.6repository注解4.7configuration注解4.8注解之间的关联4.9Bean注解

1依次构建这个相关的类我们的这个汽车类车身类底盘类以及我们的这个轮胎类
2我们的这个car类里面就是进行这个构造函数编写以及我们的这个run方法的日志输出
3因为我们的这个car依赖于这个framework因此这个里面就是需要new这个framwork对象因此我们需要创建车身这个类然后以此类推我们的这个车身依赖于这个底盘我们需要去构建这个底盘这个类然后我们的这个底盘依赖于这个轮胎这个时候我们去构建这个轮胎这个类
4在我们的这个轮胎这个类里面我们规定这个轮胎的尺寸大小在这个main里面调用这个car的构造方法我们的这个小车就可以跑起来了
我们上面的这个car里面的这个tire的尺寸大小就是写死的这样写并不好如果我们想要把这个参数进行传递就需要进行下面的这个修改
这个时候因为这个参数传递的原因我们的这个里面的每一个文件都需要进行修改正所谓牵一发而动全身这个就说明我们的这个项目里面的这个不同文件之间的这个耦合度太高了以至于我们的一个细节需要每一个文件都进行修改基于这个原因我们引入下面的这个IOC的写法
上面说了这个传统写法想要进行这个参数的传递的时候需要去对于每一个文件都进行相应的修改因此这个就显得耦合度很高下面的这个写法就是我们的这个IOC的思想
这个时候我们造车的时候需要车身我们直接让这个car的构造函数里面的这个参数就是我们的这个车身以此类推我们的这个车身需要底盘我们就让这个车身的这个构造方法的参数就是我们的底盘
我们的这个底盘需要轮胎我们就让这个底盘里面的这个构造方法的参数就是轮胎
因为这个轮胎没有什么需要依赖的因此这个时候我们的这个Tire里面的这个代码基本上保持不变
这个时候如果我们想要给这个轮胎添加上这个颜色只需要在两个文件里面进行修改就是在这个time自己的这个类里面去添加上这个对应的成员变量我们的这个主方法进行这个调用的时候加上这个对应的参数就可以了其他的都是不需要进行修改的
有了这个依赖注入的这个语法我们就可以直接去吧我们的这个对象存到我们的这个spring容器里面去而不需要使用这个new的方式去进行这个对象的创建
我们的这个bookservice里面的这个代码可以看到是使用这个new的方式创建了一个这个bookdao对象这个时候我们可以在这个bookservice上面加上这个component这个就意味着我们的这个bookservice就会让我们的这个spring容器进行管理
我们的这个原来的这个new对象的这个方式就可以修改为这个autowored的方式这个表示的就是我们从这个容器里面吧这个对象拿出来前提是我们的这个bookdao也是在这个容器里面的
我们在这个bookdao上面也是添加上这个component表示我们的这个bookdao也是使用这个spring容器进行管理的
bookservice的方式这个时候我们的这个bookservice已经加上了这个spring容器里面了因此我们就可以使用这个autowired这个方式对于我们的这个对象从容器里面拿出来
这个时候我们直接运行登录查看这个效果没有出现问题说明我们的这个对象的存和取都是正确的
1启动类就是下面的这个上面带有我们的这个springbootapplication的这个类我们的这个项目的运行就是从这个启动类开始的
2上下文我们的这个程序的运行相关的这个信息就是存储在我们的这个上下文里面的例如我们的这个线程之间的这个并发执行我们的这个线程1执行之后轮到这个线程2线程2执行之后又回到这个线程1这个时候我们如何知道这个线程1上次离开的时候这个线程执行到什么位置这个时候我们就可以把这个程序的运行的相关的信息存储到我们的这个上下文里面
bean就是我们的这个spring进行管理的对象我们使用这个getbean取出来这个对象这个是使用的我们的这个对象的类型的方式
当我们使用这个注解的时候需要在这个启动类里面使用我们的这个getbean方法获取这个容器里面的对象这个参数是使用的这个类的名字获取这个对象调用这个对象的方法我们上面的那个注释是使用的我们的这个类的类型获取的这个对象
因为我们的这个使用名字获取这个对象的方式获取的这个对象的这个默认类型就是我们的这个object类型的因此这个时候我们需要使用我们的这个自定义类型进行强制类型转化
下面的这个就是我们对于这个component这个注解的使用进行演示
在我们的这个启动类里面我们使用的是对象名对象的类型的方式获取这个对象
上面的这个情况前面的两个注解进行使用的时候我们的这个名字其实是让我们的这个spring直接进行管理的我们自己是在默认知道了这个规则才可以在这个getBean里面进行使用的下面的这两个箭头指向的内容就是我们的这个名字根据这个spring命名规范起的名字
下面我们介绍一下这个spring对于我们的这个创建的这个类里面的这个对象的命名规则
2当这个类的名字的前面的两个字母都是大写的时候我们的这个spring命名就是大写的如果是第一个字母大写我们的这个spring就会按照自己的这个小驼峰进行处理
根据这个打印结果我们可以看到这个spring进行处理的时候这个具体的名字是怎么样的这个就是命名规则我们的前面的两个字母都是大写的时候这个spring进行处理的时候才会和我们自己写的这个一样否则其他的这个情况下都是按照这个小驼峰的规则进行的
我们可以具体查看这个decapitalize查看这个具体的命名逻辑和我们上面说的是一样的
这个时候就是我们不是用这个spring默认给的这个名字而是在这个component这个后面加上参数改变这个默认的名字然后我们再这个启动类里面可以使用我们自己写的这个名字
其实上面的介绍已经覆盖了大部分情况因此下面的这个我们选取任何一个方式获取这个spring里面的对象
我们在这个启动类里面可以使用任意的一个方法获取这个spring里面的对象下面的这个选择的是第二个方式就是直接使用名字这个时候我们需要进行强制类型转换
使用第三种方式也是可以的这个时候第一个参数就是我们的对象名字第二个参数就是我们的这个对象的类型这个时候不需要进行这个强制类型转换
我们在这个启动类使用的是第一个方法取出来我们的这个对象使用这个对象调用我们的这个里面的成员方法打印结果也是正常输出的
下面的这个展示的就是我们的这个不同的注解之间的关联我们的这个controller调用我们的这个service里面的这个内容我们的这个service继续对于这个repository里面的这个内容进行调用
上面介绍的五个注解都是我们的类注解下面介绍的这个Bean是我们的这个方法注解
下面的这个就是我们的这个Bean注解修饰我们的这个方法因为我们的这个方法的返回值是一个对象我们想让这个spring对于我们的这个返回的对象进行管理
我们在这个启动类里面还是使用这个相关的方法对于这个对象进行获取调用我们的这个里面的方法获取这个对象的相关的属性值
通过这个例子可以发现我们的这个Bean方法注解需要结合上面的这些类注解进行使用我们可以自己进行测试我们的这个configuration注解去掉之后运行的时候我们是无法获取这个内容的
我们的注解无论是类注解还是方法注解都需要在这个扫描路径下面才可以生效
路径下面如果我们挪动这个启动类的位置这个时候我们的这个代码是会报错的
默认情况下我们的这个启动类和我们的这个项目里面的各种包的路径是一样的因此我们就可以直接运行
Bean注解默认的这个方法的名字就是我们的这个定义的方法的名字可以按照下面的这个方法进行修改
路径下面如果我们挪动这个启动类的位置这个时候我们的这个代码是会报错的
默认情况下我们的这个启动类和我们的这个项目里面的各种包的路径是一样的因此我们就可以直接运行
Bean注解默认的这个方法的名字就是我们的这个定义的方法的名字可以按照下面的这个方法进行修改
作为专业的SEO优化服务提供商,我们致力于通过科学、系统的搜索引擎优化策略,帮助企业在百度、Google等搜索引擎中获得更高的排名和流量。我们的服务涵盖网站结构优化、内容优化、技术SEO和链接建设等多个维度。
| 服务项目 | 基础套餐 | 标准套餐 | 高级定制 |
|---|---|---|---|
| 关键词优化数量 | 10-20个核心词 | 30-50个核心词+长尾词 | 80-150个全方位覆盖 |
| 内容优化 | 基础页面优化 | 全站内容优化+每月5篇原创 | 个性化内容策略+每月15篇原创 |
| 技术SEO | 基本技术检查 | 全面技术优化+移动适配 | 深度技术重构+性能优化 |
| 外链建设 | 每月5-10条 | 每月20-30条高质量外链 | 每月50+条多渠道外链 |
| 数据报告 | 月度基础报告 | 双周详细报告+分析 | 每周深度报告+策略调整 |
| 效果保障 | 3-6个月见效 | 2-4个月见效 | 1-3个月快速见效 |
我们的SEO优化服务遵循科学严谨的流程,确保每一步都基于数据分析和行业最佳实践:
全面检测网站技术问题、内容质量、竞争对手情况,制定个性化优化方案。
基于用户搜索意图和商业目标,制定全面的关键词矩阵和布局策略。
解决网站技术问题,优化网站结构,提升页面速度和移动端体验。
创作高质量原创内容,优化现有页面,建立内容更新机制。
获取高质量外部链接,建立品牌在线影响力,提升网站权威度。
持续监控排名、流量和转化数据,根据效果调整优化策略。
基于我们服务的客户数据统计,平均优化效果如下:
我们坚信,真正的SEO优化不仅仅是追求排名,而是通过提供优质内容、优化用户体验、建立网站权威,最终实现可持续的业务增长。我们的目标是与客户建立长期合作关系,共同成长。
Demand feedback