【Spring篇】使用注解进行开发

🎊专栏【Spring】
🍔喜欢的诗句:更喜岷山千里雪 三军过后尽开颜。
🎆音乐分享【如愿】
🥰欢迎并且感谢大家指出小吉的问题

文章目录

  • 🌺原代码(无注解)
  • 🎄加上注解
    • ⭐两个注解
      • 🎆小结
  • 🎄纯注解开发
    • ⭐结果
  • 🎄依赖注入
    • ⭐注入引用类型
    • ⭐注入简单类型

Spring 框架提供了丰富的注解来简化开发过程,使得开发者可以更加便捷和高效地编写代码。
使用注解进行Spring开发有以下几个好处:

简化配置:通过使用注解,可以减少XML配置文件的数量和复杂度,使得配置更加简洁和易于维护。

提高开发效率:注解能够减少样板式的代码,使得开发人员能够更加专注于业务逻辑的实现,从而提高开发效率。

降低耦合度:通过使用注解,可以更加方便地进行依赖注入和解耦,使得各个组件之间的耦合度降低,代码更加灵活和可扩展。

增强可读性:注解能够直观地表达代码的含义,使得代码更加清晰易懂,有助于其他开发人员快速理解代码逻辑。

更好的集成性:注解能够与现有的Java语言特性和工具链更好地集成,如IDE的支持、静态代码分析等。

总的来说,使用注解进行Spring开发能够简化开发流程,降低代码的复杂度,提高开发效率,并且使得代码更加清晰易懂,是现代Java开发中的一种主流做法。
在这里插入图片描述
使用注解(Annotation)是一种在代码级别进行说明和标记的技术,它从JDK 5.0开始引入,并在现代Java开发中得到了广泛应用。在Spring框架中,注解的运用使得配置和开发变得更加简单和便捷。通过在类、方法、参数等元素上添加注解,开发人员可以实现自动装配、自动注入等功能,从而减少了繁琐的配置工作,提高了开发效率,同时使得代码更加清晰易懂。本文将详细介绍Spring框架中常用的注解及示例,帮助开发者快速掌握Spring注解开发的要点和技巧。通过深入理解和灵活运用这些注解,开发者能够更好地利用Spring框架的强大功能,提升自身的开发水平和项目的质量。

🌺原代码(无注解)

在这里插入图片描述

🎄加上注解

applicationContext.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       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
        ">

<!--    <bean id="bookDao" class="com.example.dao.impl.BookDaoimpl"/>-->

<!--    扫描组件-->
    <context:component-scan base-package="com.example"/>

</beans>

BookDaoimpl.java

package com.example.dao.impl;

import com.example.dao.BookDao;
import org.springframework.stereotype.Component;

//组件 (组件名字)
@Component("bookDao")
public class BookDaoimpl implements BookDao {
    public void save(){
        System.out.println("book dao save ...");
    }
}

在这里插入图片描述
我们可以加上两个注解

⭐两个注解

在这里插入图片描述

🎆小结

请添加图片描述
请添加图片描述

🎄纯注解开发

使用这种方式,我们就不用写applicationContext.xml文件了

在这里插入图片描述

我们创建config包,里面配上SpringConfig类

package com.example.config;

import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;

//配置类
@Configuration
//扫描  (指定包)
@ComponentScan("com.example")
public class SpringConfig {
}

创建AppForAnnotation测试类
在这里插入图片描述

package com.example;

import com.example.config.SpringConfig;
import com.example.dao.BookDao;
import com.example.service.BookService;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;

public class AppForAnnotation {
    public static void main(String[] args) {
        ApplicationContext ctx=new AnnotationConfigApplicationContext(SpringConfig.class);
        BookDao bookDao=(BookDao) ctx.getBean("bookDao");
        System.out.println(bookDao);
        BookService bookService=ctx.getBean(BookService.class);
        System.out.println(bookService);
    }
}

其他的不用变

⭐结果

在这里插入图片描述

🎄依赖注入

使用@Autowired注解,这样就不用写setter方法了

请添加图片描述

⭐注入引用类型

请添加图片描述

⭐注入简单类型

使用@Value() 可以起到传值的作用

在这里插入图片描述

在这里插入图片描述

在现代的Java开发中,注解已经成为了不可或缺的一部分。通过合理地运用注解,我们能够使得代码更加简洁、清晰,并且更具有灵活性和可维护性。本文介绍了在Spring框架中常用的注解及其示例,希望能够为大家在实际的项目开发中提供帮助。

总的来说,使用注解进行开发可以减少样板式的配置,提高开发效率,同时也使得代码更加易读易懂。随着对注解特性的深入理解和灵活运用,我们相信大家会在日常的开发工作中受益匪浅。让我们共同享受注解带来的便利,不断提升自己在Java开发领域的技术水平,创造出更加优秀的软件作品。
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

八股文-TCP的四次挥手

TCP&#xff08;Transmission Control Protocol&#xff09;是一种面向连接的、可靠的传输协议&#xff0c;它的连接的建立和关闭过程都是经过精心设计的。在TCP连接关闭时&#xff0c;使用四次挥手来保证数据的完整传输和连接的正常终止。 漫画TCP的四次挥手 第一次挥手&#…

美国服务器:全面剖析其主要优点与潜在缺点

​  服务器是网站搭建的灵魂。信息化的今天&#xff0c;我们仍需要它来为网站和应用程序提供稳定的运行环境。而美国作为全球信息技术靠前的国家之一&#xff0c;其服务器市场备受关注。那么&#xff0c;美国服务器究竟有哪些主要优点和潜在缺点呢? 优点 数据中心基础设施&a…

亚马逊云科技AI创新应用下的托管在AWS上的数据可视化工具—— Amazon QuickSight

目录 Amazon QuickSight简介 Amazon QuickSight的独特之处 Amazon QuickSight注册 Amazon QuickSight使用 Redshift和Amazon QuickSightt平台构建数据可视化应用程序 构建数据仓库 数据可视化 Amazon QuickSight简介 亚马逊QuickSight是一项可用于交付的云级商业智能 (BI…

Redis:新的3种数据类型Bitmaps、HyperLoglog、Geographic

目录 Bitmaps简介常用命令bitmaps与set比较 HyperLoglog简介命令 Geographic简介命令 Bitmaps 简介 位操作字符串。 现代计算机使用二进制&#xff08;位&#xff09;作为信息的基本单位&#xff0c;1个字节等于8位&#xff0c;例如“abc”字符串是有3个字节组成&#xff0c…

【面试经典150 | 数学】Pow(x, n)

文章目录 写在前面Tag题目来源题目解读解题思路方法一&#xff1a;快速幂-递归方法二&#xff1a;快速幂-迭代 其他语言python3 写在最后 写在前面 本专栏专注于分析与讲解【面试经典150】算法&#xff0c;两到三天更新一篇文章&#xff0c;欢迎催更…… 专栏内容以分析题目为主…

一文总结MySQL的指令是如何工作的

当你输入一条MySQL指令时候有没有想过会发生什么&#xff1f; 建立连接 首先你得先连到数据库上才行&#xff0c;这又分为长连接和短链接&#xff0c;短链接就是你查询一次就断开连接&#xff0c;长连接是你可以多次查询直到主动断开连接&#xff08;也可能被杀死进程&#x…

基于单片机音乐弹奏播放DS1302万年历显示及源程序

一、系统方案 1、本设计采用51单片机作为主控器。 2、DS1302计时显示年月日时分秒。 3、按键可以弹奏以及播放音乐&#xff0c;内置16首音乐。 二、硬件设计 原理图如下&#xff1a; 三、单片机软件设计 1、首先是系统初始化 /时钟显示**/ void init_1602_ds1302() { write…

RabbitMQ 集群和镜像队列

文章目录 一、clustering(集群)1、使用集群的原因2、搭建步骤2.1、拉取镜像2.2、创建三个RabbitMQ容器节点2.3、集群搭建 二、镜像队列1、使用镜像的原因2、搭建步骤 总结 一、clustering(集群) 1、使用集群的原因 如果 RabbitMQ 服务器遇到内存崩溃、机器掉电或者主板故障等…

string类的总结

目录 1.为什么要学习string类 2.string的标准库 3.string类的常用接口说明 1.string类对象的常见构造 2.string类对象的容量操作 3.string类对象的3种遍历方法 3.1 [ ] 下标 3.2 基于范围的for循环 3.3 迭代器 4 string类对象的元素访问 4.1 operator[]&#xff1a; 4.…

【LearnOpenGL基础入门——3】绘制纯色三角形

目录 一.写在前面 二.顶点输入 三.顶点着色器 四.编译着色器 五.片段着色器 六.着色器程序 七.链接顶点属性 彩蛋 一.写在前面 我们先认识一下OpenGL常用的几个名词&#xff1a; 顶点数组对象&#xff1a;Vertex Array Object&#xff0c;VAO顶点缓冲对象&#xff1a;…

mysql客户端navicat的一些错误合集

关于mysql的客户端的使用的一些问题 问题描述&#xff1a; 在使用navicat prenium客户端的时候&#xff0c;连接数据库出现 Table ‘performance_schema.session_variables’ doesn’t exist 错误 解决方案&#xff1a; 首先找到mysql的bin目录 然后winR 进入到cmd界面 输入…

数据库迁移(DBeaver版本)

最近需要做一个数据库迁移&#xff0c; 测试环境开发的差不多了&#xff0c;需要将脚本迁移到生产。 中间了试了一些工具&#xff0c;比如Jetbrain出品的datagrip&#xff0c;这个数据库工具平时还是很好用的&#xff0c;但是数据迁移感觉不是那么好用&#xff0c;所以还是用到…

二元分类模型评估方法

文章目录 前言一、混淆矩阵二、准确率三、精确率&召回率四、F1分数五、ROC 曲线六、AUC&#xff08;曲线下面积&#xff09;七、P-R曲线类别不平衡问题中如何选择PR与ROC 八、 Python 实现代码混淆矩阵、命中率、覆盖率、F1值ROC曲线、AUC面积 指标 公式 意义 真正例 (TP)被…

图像分类系列(三) GoogLeNet InceptionV1学习详细记录

前言 ​ 在上一期中介绍了VGG&#xff0c;VGG在2014年ImageNet 中获得了定位任务第1名和分类任务第2名的好成绩&#xff0c;而今天要介绍的就是同年分类任务的第一名——GoogLeNet 。 ​ 作为2014年ImageNet比赛冠军&#xff0c;GoogLeNet 比VGG更深的网络&#xff0c;比Alex…

虹科示波器 | 汽车免拆检修 | 2015款奔驰G63AMG车发动机偶尔自动熄火

一、故障现象 一辆2015款奔驰G63AMG车&#xff0c;搭载157发动机&#xff0c;累计行驶里程约为9.4万km。车主反映&#xff0c;该车低速行驶时&#xff0c;发动机偶尔会自动熄火&#xff0c;故障大概1个星期出现1次。 二、故障诊断 接车后路试&#xff0c;故障未能再现。用故障检…

MyBatis查询数据库(全是精髓)

1. 什么是MyBatis&#xff1f; 简单说&#xff0c;MyBatis就是一个完成程序与数据库交互的工具&#xff0c;也就是更简单的操作和读取数据库的工具。 2. 怎么学习Mybatis Mybatis学习只分为两部分&#xff1a; 配置MyBatis开发环境使用MyBatis模式和语法操作数据库 3. 第一…

【Gradle构件工具深度学习】

Gradle构件工具深度学习 1. 课程大纲1.1 Gradle入门1.2 与Idea整合1.3 Gradle进阶 2. 常见项目构建工具3. 安装gradle 1. 课程大纲 1.1 Gradle入门 基本介绍、常用指令、项目目录、项目应用 1.2 与Idea整合 Groovy语法、整合IDEA、搭建web工程、项目部署 1.3 Gradle进阶 生命周…

springboot jar包 无法读取静态资源文件

springboot jar包 无法读取静态资源文件 参考 springboot项目读取resources目录下的文件的9种方式 Resource resource resourceLoader.getResource("classpath:static/jkbw/jkbw4.txt");try{InputStream inputStream resource.getInputStream();BufferedReader r…

基于知识图谱+flask的大数据电影问答系统(超详细讲解及源码)

大数据知识图谱项目——基于知识图谱flask的大数据电影问答系统&#xff08;超详细讲解及源码&#xff09; 一、项目概述 知识图谱是将知识连接起来形成的一个网络。由节点和边组成&#xff0c;节点是实体&#xff0c;边是两个实体的关系&#xff0c;节点和边都可以有属性。知…

基于秃鹰算法优化概率神经网络PNN的分类预测 - 附代码

基于秃鹰算法优化概率神经网络PNN的分类预测 - 附代码 文章目录 基于秃鹰算法优化概率神经网络PNN的分类预测 - 附代码1.PNN网络概述2.变压器故障诊街系统相关背景2.1 模型建立 3.基于秃鹰优化的PNN网络5.测试结果6.参考文献7.Matlab代码 摘要&#xff1a;针对PNN神经网络的光滑…