Day 08 - Spring Boot 常用注释(上)

注释基本概念

注释(Annotations) 是Java 5.0 加入的新功能,它强化了程序注解与Javadoc 文件注解的功能,使其更有强制力,并用来归纳各种条件陈述的变化,使开发人员更能掌握语法规则,以下程序进行讲解。

// 假设有一个Animal 类别
public class Animal {
	public void move() {
		System.out.println("Move");
	}
}

// 制定一个Dog 类别继承Animal 并覆写move() 方法
public class Dog extends Animal {
	public void move() {
		System.out.println("乱跑乱跳");
	}
}

// 以上是正常且合法的作法,但如果将move() 方法写成以下程序码
public class Cat extends Animal {
	public void moving() {
		System.out.println("跑一跑跳一跳");
	}
}

Cat 类别应该要覆写的是move() 方法,却误写成moving() 方法,虽然该程序仍然可以正常编译与执行,然而覆写才是我们的目的,但在Java 编译与执行时,Java 编译器并不会知道程序设计师是希望覆写move() 方法。

为了解决上述问题,可以在moving() 方法上加入@Override 的注解,moving() 就变成一个被标注的覆写方法,该注解是表示该方法的目的是覆写父类别的方法,覆写时可能没注意到但会由Annotation 机制提醒,透过Java 编译就会取得错误讯息。

public class Cat extends Animal {
	@Override
	public void moving() {
		System.out.println("跑一跑跳一跳");
	}
}

// 错误讯息
// method does not override a method from its superclass.

Java 标准注释

Java 已经在java.lang 套件中定义好三个标准注释,分别为Override、Deprecated 和SuppressWarnnings。

  1. @Override : 表示此方法覆写了父类别的方法
  2. @Deprecated : 表示此方法已经过时
  3. @SuppressWarnnings : 告诉编译器忽视某类别编译警告
    // 告诉编译器忽略unchecked 警告讯息
    @SuppressWarnnings("unchecked")
    
    // 告诉编译器忽略unchecked 和deprecation 警告讯息
    @SuppressWarnnings("unchecked", "deprecation")
    
    // 相当於@SuppressWarnnings("unchecked", "deprecation")
    @SuppressWarnnings(value = {"unchecked", "deprecation"})
    

Spring Boot 核心注释

Spring Boot 的核心注释是启动类上的@SpringBootApplication 注释,它主要包含了以下三个注释,实现声明一个或多个Bean 并启动自动配置组件扫描的注释 :

  1. @SpringBootConfiguration : 组合了@Configuration 注释,实现配置档案的功能。
  2. @EnableAutoConfiguration : 开启自动配置的功能,也可以关闭某个自动配置的选项,如想要关闭资料来源自动配置功能@EnableAutoConfiguration(exclude = {DataSourceAutoConfiguration.class})
  3. @ComponentScan : 用来扫描元件并装配一些Bean,会根据定义的扫描路径把符合扫描规则的类别装配到Spring 容器中。

以下是预设的@SpringBootApplication 注释的内容。

@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited
@SpringBootConfiguration
@EnableAutoConfiguration
@ComponentScan(excludeFilters = { 
		@Filter(type = FilterType.CUSTOM, classes = TypeExcludeFilter.class),
		@Filter(type = FilterType.CUSTOM, classes = AutoConfigurationExcludeFilter.class) })
public @interface SpringBootApplication

参考网站

Java注解 - 维基百科,自由的百科全书
SpringBootApplication (Spring Boot 2.5.6 API)


<<:  【Day23】 Transformer 新手包 (三)

>>:  [DAY08] 部署用 Designer 做好的 Pipiline 到 Web API

完赛!YA!关於 Vue.js 进阶心法系列

其实原本不是要叫这个名字的。原本要叫《官网没教你的「如何把 Vue 写好」》但是太狂了,竟然敢代替官...

[Day 26] 第二主餐 pt.4-贺乔迁aws二度,aws布署完整步骤

好的,看到标题大家会觉得啊你怎又要乔迁了 没错,由於昨天加前天的尝试 我把原本的aws搞爆了 不过俗...

【Day 20】 实作 - 於 AWS Quicksight 建立 Sankey diagram 以及设定 Action

昨天我们已经透过 AWS Glue Job 来调整 Partition 分区结构以及将此格式转换成 ...

使用 KSP 来改善 annotation processor?

就在我们用 KAPT 开发完这个 RSS library 後几个月 KSP 就发布了! KSP 的全...

第5砍 - 挺身而出

明天就要上班了... 给自己一点安慰 不上白不上, 上了不白上 努力加油, 徵求自我介绍范例:) 今...