首页 > 其他分享 >springboot学习日记(一)

springboot学习日记(一)

时间:2023-11-10 11:11:05浏览次数:48  
标签:XML springboot 学习 耦合 编译器 Override 注解 方法 日记

今天连下数据库,不小心打成netstart mysql了,好糗。。以后等时机到了笔记也该换成markdown写了,好久没写md后面得复习下。

然后idea这边连数据库很简单不用写专门的程序,右侧栏database直接可以点开具体到连接某个数据库。

记录一下注解的原理和作用:

以前,『XML』是各大框架的青睐者,它以松耦合的方式完成了框架中几乎所有的配置,但是随着项目越来越庞大,『XML』的内容也越来越复杂,维护成本变高。

于是就有人提出来一种标记式高耦合的配置方式,『注解』。方法上可以进行注解,类上也可以注解,字段属性上也可以注解,反正几乎需要配置的地方都可以进行注解。

关于『注解』和『XML』两种不同的配置模式,争论了好多年了,各有各的优劣,注解可以提供更大的便捷性,易于维护修改,但耦合度高,而 XML 相对于注解则是相反的。

追求低耦合就要抛弃高效率,追求效率必然会遇到耦合。本文意不再辨析两者谁优谁劣,而在于以最简单的语言介绍注解相关的基本内容。——转载自JAVA 注解的基本原理 - Single_Yam - 博客园 (cnblogs.com)

这里可以看出注解其实是一种配置方法,相对于xml更追求低耦合带来的高效。

所有注解类都继承自java.lang.annotation.Annotation这个接口

public interface Override extends Annotation{

}

上面是Override的定义,其实只是个继承Annotation接口的接口。

也就是说如果没有编译器对于注解的处理,注解就只是一个继承了接口的特殊的注释。

而解析一个类或者方法的注解往往有两种形式,一种是编译期直接的扫描,一种是运行期反射。反射的事情我们待会说,而编译器的扫描指的是编译器在对 java 代码编译字节码的过程中会检测到某个类或者方法被一些注解修饰,这时它就会对于这些注解进行某些处理。

典型的就是注解 @Override,一旦编译器检测到某个方法被修饰了 @Override 注解,编译器就会检查当前方法的方法签名是否真正重写了父类的某个方法,也就是比较父类中是否具有一个同样的方法签名。

有关注解暂时先理解到这,感觉继续深入对目前的学习进度没有大用,可以认为注解的功能来自于编译器。

 

标签:XML,springboot,学习,耦合,编译器,Override,注解,方法,日记
From: https://www.cnblogs.com/yiwenwong/p/17823635.html

相关文章

  • Springboot报错,java.lang.IllegalArgumentException: argument type mismatch
    1、报错信息java.lang.IllegalArgumentException:argumenttypemismatch atsun.reflect.NativeMethodAccessorImpl.invoke0(NativeMethod) atsun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) atsun.reflect.DelegatingMethodAccessorI......
  • 文言文学习网址
    http://www.zdic.net/汉典https://www.cidianwang.com/字词的解读都有。有各种方向的解读,比如新华字典、康熙字典、广韵字典、书法字典等http://www.guoxuedashi.com/除了文字,还有史书、成语、诗词、中医等各种传统文化,和它的名字相符——“国学大师”。它就像一本适合细细品嚼......
  • JUC并发编程学习笔记(十八)深入理解CAS
    深入理解CAS什么是CAS为什么要学CAS:大厂你必须深入研究底层!有所突破!java层面的cas------->compareAndSetcompareAndSet(intexpectedValue,intnewValue)期望并更新,达到期望值就更新、否则就不更新!packageorg.example.cas;importjava.util.concurrent.atomic.AtomicI......
  • 信息安全系统设计与实现课程第六章学习笔记
    一、知识点归纳1.信号和中断1.1进程概念进程是计算机中的基本执行单位,可以看作是一系列活动的集合。这些活动包括从事日常事务的人、在用户模式或内核模式下运行的Unix/Linux进程,以及执行机器指令的CPU。1.2中断中断是一种事件,用于通知进程需要进行某种处理,将进程从正常活......
  • 第十周学习笔记(学习笔记9)
    思维导图知识点归纳知识点总结介绍信号和中断的统一处理,有助于从正确的角度看待信号;将信号视为进程中断,将进程从正常执行转移到信号处理;解释信号的来源;解释Unix/Linux中的信号处理,包括信号类型、信号向量位、信号掩码位、进程PROC结构体中的信号处理程序以及信号处理步......
  • 学习笔记9
    第六章知识点信号和中断中断是从I/O设备或协处理器发送到CPU的外部请求,它将CPU从正常执行转移到中断处理。人员中断来源来自硬件的中断来自他人的中断自己造成的中断紧急程度不可屏蔽可屏蔽进程中断来自硬件的中断来自他人的中断自己造成的中断硬件......
  • 前端学习-JavaScrip学习-sort()函数
    sort()函数默认按照字符串Unicode码排序如果希望按照数字大小排序,需要传参letarr=[2,4,5,6,22,9,10,111,2,1,32];console.log(arr.sort(function(a,b){returna-b;//升序//returnb-a;//降序}));参考链接:js排序——sort()排序用法......
  • 前端学习-JavaScrip学习-js基础03
    学习教程:黑马程序员视频链接循环案例-九九乘法表<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width,initial-scale=1.0"><title>......
  • 第一次学习
    #define_CRT_SECURE_NO_WARNINGS#include<stdio.h>//intmain()//{// intnum=0;// scanf("%d",&num);// if(1==num%2)// printf("奇数=%d\n",num);// else// printf("偶数=%d",num);// // return0;//}// % 取余;......
  • 【django框架】共4大模块50页md学习文档 第5篇:django的请求与响应详解
    当你考虑开发现代化、高效且可扩展的网站和Web应用时,Django是一个强大的选择。Django是一个流行的开源PythonWeb框架,它提供了一个坚实的基础,帮助开发者快速构建功能丰富且高度定制的Web应用整套Django笔记直接地址:请移步这里共10章,31子模块请求与响应学习目标掌握r......