一文掌握Java注解之@SpringBootApplication知识文集(1)

在这里插入图片描述

🏆作者简介,普修罗双战士,一直追求不断学习和成长,在技术的道路上持续探索和实践。
🏆多年互联网行业从业经验,历任核心研发工程师,项目技术负责人。
🎉欢迎 👍点赞✍评论⭐收藏

Java注解知识专栏学习

Java注解知识云集访问地址备注
Java注解知识点(1)https://blog.csdn.net/m0_50308467/article/details/135240536Java注解专栏
Java注解知识点(2)https://blog.csdn.net/m0_50308467/article/details/135263693Java注解专栏
Java注解知识点(3)https://blog.csdn.net/m0_50308467/article/details/135278911Java注解专栏
Java注解知识点(4)https://blog.csdn.net/m0_50308467/article/details/135302054Java注解专栏
Java注解知识点(5)https://blog.csdn.net/m0_50308467/article/details/135313158Java注解专栏

文章目录

  • 🏆 学习Java注解之@SpringBootApplication
    • 🔎 Java 注解@SpringBootApplication学习(1)
      • 🍁🍁 01、@SpringBootApplication 注解有什么作用?
      • 🍁🍁 02、@SpringBootApplication 注解包含哪些其他注解?
      • 🍁🍁 03、@SpringBootApplication 注解的来源是哪个包?
      • 🍁🍁 04、如何在 @SpringBootApplication 中使用外部配置文件?
      • 🍁🍁 05、@SpringBootApplication 注解中启用自动配置机制的注解是什么?
      • 🍁🍁 06、@SpringBootApplication 中的 @EnableAutoConfiguration 注解的作用是什么?
      • 🍁🍁 07、@SpringBootApplication 中的 @ComponentScan 注解的作用是什么?
      • 🍁🍁 08、@SpringBootApplication 中的 @Configuration 注解的作用是什么?
      • 🍁🍁 09、@SpringBootApplication 注解的详细用法是怎样的?
      • 🍁🍁 10、如何禁用 @SpringBootApplication 中的自动配置机制?

🏆 学习Java注解之@SpringBootApplication

🔎 Java 注解@SpringBootApplication学习(1)

🍁🍁 01、@SpringBootApplication 注解有什么作用?

@SpringBootApplication 是 Spring Boot 的核心注解,它是一个组合注解,包含了其他几个注解:@SpringBootConfiguration@EnableAutoConfiguration@ComponentScan

@SpringBootApplication 的作用是:标记一个主程序类,表示这是一个 Spring Boot 应用程序的入口,同时也开启了 Spring Boot 的自动配置和组件扫描功能。

具体来说:

  1. @SpringBootConfiguration 表明该类和一个 Spring 配置类类似,配置类通常使用 @Configuration 注解,但是 @SpringBootConfiguration 注解可以用于更明确地指示该类是一个 Spring Boot 配置类。换句话说,它是 @Configuration 的替代品。
  2. @EnableAutoConfiguration 是 Spring Boot 自动配置的核心注解,它可以根据当前 Spring Boot 应用程序中使用的 jar 包、类路径和其他配置,来确定需要配置哪些 Spring 框架的组件和第三方库的依赖。自动配置可以避免开发人员手动配置大量的 Bean,让开发更加简单和快速。
  3. @ComponentScan 提供了 Spring 组件扫描的基本功能,它默认扫描主程序类所在的包以及其子包中所有的 Spring 组件,包括 @Component@Service@Controller@Repository 等。

综上,@SpringBootApplication 注解的作用是标记 Spring Boot 应用程序的主程序类,同时启用 Spring Boot 的自动配置和组件扫描功能,一种简化 Spring 应用配置的方式。

🍁🍁 02、@SpringBootApplication 注解包含哪些其他注解?

@SpringBootApplication 注解包含以下三个注解:@SpringBootConfiguration@EnableAutoConfiguration@ComponentScan

当使用 @SpringBootApplication 注解标记一个类作为主程序类时,它包含了以下几个关键注解:

  1. @SpringBootConfiguration:该注解是 @Configuration 的特殊形式,用于指示当前类是 Spring Boot 的配置类。@Configuration 注解通常用于标记普通的 Spring 配置类,但是在 Spring Boot 中,推荐使用 @SpringBootConfiguration 注解来明确表示该类是一个 Spring Boot 配置类。配置类主要负责定义应用程序的配置信息,包括创建和配置 Bean 对象、设置数据源、事务管理器等。

  2. @EnableAutoConfiguration:这是 Spring Boot 自动配置的核心注解。通过此注解,Spring Boot 可以根据项目的依赖和当前环境来自动配置 Spring 和第三方库的相关组件。自动配置是 Spring Boot 的一大特色,它根据约定大于配置的原则,使用默认的配置来简化开发人员的工作。@EnableAutoConfiguration 注解可以根据项目的依赖,自动配置数据源、Web MVC、数据库、缓存等各种组件,减少了手动编写繁琐配置的工作量。

  3. @ComponentScan:该注解用于启用组件扫描机制。在 Spring Boot 中,通常将 @ComponentScan 注解放在主程序类或配置类上。它指定要扫描的包(及其子包),以查找并注册 Spring 组件,如 @Component@Service@Controller@Repository 等。通过组件扫描,Spring Boot 可以自动发现和加载这些组件,无需手动配置所有的 Bean。这样,开发人员可以将更多的精力放在业务逻辑的实现上,提高开发效率。

综上所述,@SpringBootApplication 注解的核心作用是将 @SpringBootConfiguration@EnableAutoConfiguration@ComponentScan 这三个注解组合在一起。它不仅标识主程序类是一个 Spring Boot 配置类,还启用了自动配置和组件扫描功能。通过这个注解,Spring Boot 可以自动配置项目需要的各种组件,并且扫描和加载符合条件的 Spring 组件。这样,开发人员可以更加方便地开发和配置项目,减少繁琐的手动配置工作,提高开发效率。

🍁🍁 03、@SpringBootApplication 注解的来源是哪个包?

@SpringBootApplication 注解的来源是 org.springframework.boot.autoconfigure.SpringBootApplication 包。该包是 Spring Boot 框架中的一部分,提供了许多自动配置相关的注解和类。@SpringBootApplication 注解是其中一个核心注解,用于标记主程序类,并集成了 @SpringBootConfiguration@EnableAutoConfiguration@ComponentScan 注解的功能,方便地开启自动配置和组件扫描机制。

在使用 @SpringBootApplication 注解时,通常需要添加相关的依赖包到项目的构建配置文件中(如 Maven 的 pom.xml 或 Gradle 的 build.gradle 文件),以确保编译和运行时可以正常使用该注解及相关的类和功能。

总结起来,@SpringBootApplication 注解提供了 Spring Boot 的核心功能,并集成了自动配置和组件扫描等特性,它来自于 Spring Boot 框架的 org.springframework.boot.autoconfigure.SpringBootApplication 包。

值得注意的是,@SpringBootApplication 其实是一个组合注解,它包含了 @SpringBootConfiguration@EnableAutoConfiguration@ComponentScan 这三个注解。因此,当我们使用 @SpringBootApplication 注解时,实际上就等价于同时使用了这三个注解。

具体来说,@SpringBootConfiguration 注解用于标记当前类为 Spring Boot 的配置类,它是 @Configuration 注解的特殊形式。@Configuration 注解通常用于标记普通的 Spring 配置类,但在 Spring Boot 中,推荐使用 @SpringBootConfiguration 注解来明确表示该类是一个 Spring Boot 配置类,它可以通过 @Import 注解来导入其他配置类。

@EnableAutoConfiguration 注解是 Spring Boot 自动配置的核心注解,通过此注解,Spring Boot 可以根据项目的依赖和当前环境来自动配置 Spring 和第三方库的相关组件。自动配置是 Spring Boot 的一大特色,它可以根据约定大于配置的原则,使用默认的配置来简化开发人员的工作。通过自动配置,Spring Boot 可以根据项目的依赖,自动配置数据源、Web MVC、数据库、缓存等各种组件。

@ComponentScan 注解用于启用组件扫描机制,它通常放在主程序类或配置类上。通过组件扫描,Spring Boot 可以自动发现和加载符合条件的 Spring 组件,如 @Component@Service@Controller@Repository 等。通过组件扫描,可以避免手动配置所有的 Bean,提高开发效率。同时,为了限制扫描范围,@ComponentScan 注解可以结合其他注解(如 @Configuration@SpringBootApplication)来指定扫描的包路径。

综上所述,@SpringBootApplication 是 Spring Boot 的核心注解之一,它集成了三个注解的功能,方便地开启自动配置和组件扫描机制。在使用该注解时,我们通常需要添加相关的依赖包,并在主程序类上标注该注解,让 Spring Boot 自动完成配置和扫描操作。

🍁🍁 04、如何在 @SpringBootApplication 中使用外部配置文件?

在Spring Boot应用中,我们可以使用 application.propertiesapplication.yml 文件来指定应用程序配置信息,比如数据源、端口号、日志级别等等。当然,有时我们也需要在配置文件中使用外部的属性文件,比如数据库配置信息。针对这种情况,Spring Boot提供了多种方式来实现。

下面是一些在 @SpringBootApplication 中使用外部配置文件的方式:

1. 使用 @PropertySource 注解

@PropertySource 注解可以用于指定一个属性源文件,该文件中的属性会自动加载到 Spring 环境中。具体来说,我们可以在启动类上添加 @PropertySource 注解,指定外部的属性文件路径。示例如下:

@SpringBootApplication
@PropertySource(value = {"classpath:config/db.properties"})
public class MyApplication {public static void main(String[] args) {SpringApplication.run(MyApplication.class, args);}
}

2. 使用 @ConfigurationProperties 注解

@ConfigurationProperties 注解可以用于将配置文件中的属性绑定到 JavaBean 中。通过 @ConfigurationProperties 注解,Spring Boot 可以自动映射外部属性文件中的数据到 JavaBean 的属性中。示例如下:

@Component
@ConfigurationProperties(prefix="db")
@Data
public class DbConfig {private String url;private String username;private String password;
}

在本例中,我们定义了一个 DbConfig 类,其中的属性与数据库配置信息对应。我们使用 @ConfigurationProperties 注解指定了属性的前缀为 db,并将该类标记为 Spring 组件(通过 @Component 注解)。当 Spring Boot 启动时,会自动将 application.ymlapplication.properties 中以 db 开头的配置信息注入到 DbConfig 对象中。

3. 使用 @Value 注解

@Value 注解可以用于将属性值注入到指定的属性中。与 @ConfigurationProperties 注解不同的是,@Value 注解必须在一个整体 Bean(例如一个 @Component)中使用,而不能单独用于一个属性上。示例如下:

@Component
public class MyComponent {@Value("${myprop1}")private String myProp1;@Value("${myprop2:default-value}")private String myProp2;
}

在本例中,我们定义了一个 MyComponent 类,其中的属性 myProp1myProp2 分别对应了配置文件中的属性 myprop1myprop2${myprop1} 表示将配置文件中的 myprop1 属性注入到 myProp1 变量中,而 ${myprop2:default-value} 表示将配置文件中的 myprop2 属性注入到 myProp2 变量中,如果找不到配置文件中的 myprop2 属性,则使用 default-value 作为默认值。

总结起来,Spring Boot 提供了多种方式来使用外部配置文件,包括使用 @PropertySource 注解、@ConfigurationProperties 注解和 @Value 注解等等。根据具体的应用场景和需求,我们可以选择适合自己的方式来加载外部配置文件。

🍁🍁 05、@SpringBootApplication 注解中启用自动配置机制的注解是什么?

@SpringBootApplication 注解中,启用自动配置机制的关键注解是 @EnableAutoConfiguration。这个注解告诉Spring Boot根据项目的依赖和配置文件来自动配置应用程序。它将根据路径中的 META-INF/spring.factories 文件来加载自动配置类,并应用相应的自动配置。

通过 @EnableAutoConfiguration 注解,Spring Boot可以根据项目的依赖自动配置各种功能模块,如web、数据库连接、JPA、缓存等。Spring Boot会根据配置文件和项目依赖的自动配置类,自动装配这些功能模块,简化了开发者的工作。

这个注解是Spring Boot的核心注解之一,它可以在主启动类上或者配置类上使用,用于启用自动配置的功能。通常情况下,我们会将 @EnableAutoConfiguration 注解放在主启动类上,以确保自动配置的生效。

例子:

@SpringBootApplication
public class MyApplication {public static void main(String[] args) {SpringApplication.run(MyApplication.class, args);}
}

在这个例子中,我们将 @EnableAutoConfiguration 所需的 @SpringBootApplication 注解添加到了 MyApplication 主启动类上。这样,Spring Boot会根据项目的依赖和配置文件来自动配置应用程序的各项功能。

🍁🍁 06、@SpringBootApplication 中的 @EnableAutoConfiguration 注解的作用是什么?

@EnableAutoConfiguration 是 Spring Boot 的核心注解之一,用于开启 Spring Boot 的自动配置功能。它会根据项目的依赖和配置来自动配置应用程序的各项功能。具体来说,它会检查 classpath 下的各种 jar 包,根据这些 jar 包中的内容来决定应该配置哪些功能模块,比如 web、数据库连接、JPA、缓存等。

@EnableAutoConfiguration 具体的实现方式是通过读取 classpath 下的 META-INF/spring.factories 文件,来获取所有的自动配置类。Spring Boot 会将它们加载进来,并自动为应用程序进行配置。这一过程完全是自动化的,无需手动编写配置代码。

需要注意的是,启用自动配置功能的前提是要首先引入对应的 jar 包或模块。比如,如果需要连接 MySQL 数据库,就需要在 pom.xml 或 build.gradle 文件中引入 mysql-connector-java 的依赖。Spring Boot 使用 Maven 和 Gradle 进行依赖管理,会自动下载相应的依赖。

总之,@EnableAutoConfiguration 的作用是为 Spring Boot 应用程序开启自动配置功能,让开发者可以非常方便地构建基于 Spring Boot 的应用程序。

当您在使用 @SpringBootApplication 注解时,无需显式添加 @EnableAutoConfiguration 注解,因为 @SpringBootApplication 注解已经包含了 @EnableAutoConfiguration 的功能。

以下是一个简单的示例,展示了如何使用 @SpringBootApplication 注解开启自动配置功能:

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplication
public class Application {public static void main(String[] args) {SpringApplication.run(Application.class, args);}
}

在上述示例中,@SpringBootApplication 注解被用于标记主启动类 Application。这个注解会启动自动配置机制,根据项目的依赖和配置来自动配置应用程序。

请注意,在使用此示例之前,您需要确保已经正确配置和引入了项目所需的相关依赖。具体的依赖配置可以通过 Maven 或 Gradle 等构建工具进行。

希望以上示例能够帮助您理解 @SpringBootApplication 注解以及内部的 @EnableAutoConfiguration 的使用方式。如有任何进一步的疑问,请随时提问。

🍁🍁 07、@SpringBootApplication 中的 @ComponentScan 注解的作用是什么?

@ComponentScan 是 Spring Framework 的注解之一,也是在 @SpringBootApplication 中常用的注解之一。它的作用是扫描和注册 Spring Bean 组件。

Spring Bean 组件是应用程序中的各个类,通过将其标记为 @Component 或其派生注解(如 @Controller@Service@Repository 等),使其成为 Spring IoC 容器的管理对象。这些组件可以通过依赖注入来实现解耦和管理。

@ComponentScan 注解告诉 Spring 在指定的包及其子包下进行组件扫描。Spring 会自动检测注解标记的类,并将其实例化为 Spring Bean。这样,就可以方便地在应用程序中使用通过自动扫描注册的 Spring Bean。

以下是一个示例代码,展示了如何使用 @ComponentScan 注解来指定要扫描的包:

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.ComponentScan;@SpringBootApplication
@ComponentScan(basePackages = "com.example")
public class Application {public static void main(String[] args) {SpringApplication.run(Application.class, args);}
}

在上述示例中,@ComponentScan 注解指定了要扫描的包路径为 "com.example"。Spring 将会扫描该包及其子包下的组件,并将它们注册为 Spring Bean。

需要注意的是,默认情况下,@ComponentScan 会扫描主启动类所在的包及其子包下的组件。通过指定 basePackages 属性,我们可以自定义扫描的包路径。

总之,@ComponentScan 的作用是告诉 Spring 扫描指定的包及其子包下的组件,并将它们注册为 Spring Bean,以供应用程序使用。它与 @SpringBootApplication 注解一起使用,可以方便地进行组件的扫描和注册。

🍁🍁 08、@SpringBootApplication 中的 @Configuration 注解的作用是什么?

@Configuration 是 Spring Framework 的注解之一,它的作用是将标注的类声明为配置类。在 @SpringBootApplication 中使用 @Configuration 注解意味着将该类作为配置类来使用。

配置类用于定义 Bean 的创建和配置,相当于 Spring 配置文件中的 <beans> 元素。在配置类中,可以使用 @Bean 注解定义方法,方法的返回值将被注册为 Spring Bean,并交由 Spring IoC 容器进行管理。

@SpringBootApplication 注解本身就包含了 @Configuration 注解的功能,所以在主启动类上添加 @Configuration 注解是可选的。

以下是一个示例代码,展示了如何在 @SpringBootApplication 中使用 @Configuration 注解:

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.Bean;@SpringBootApplication
public class Application {public static void main(String[] args) {SpringApplication.run(Application.class, args);}@Beanpublic MyBean myBean() {// 创建并返回 MyBean 实例return new MyBean();}
}

在上述示例中,Application 类被标注为 @SpringBootApplication 注解,它同时也是一个配置类,因为 @Configuration@SpringBootApplication 中已经包含了。

Application 类中,使用 @Bean 注解定义了一个名为 myBean 的方法,该方法会返回一个 MyBean 实例,这个实例会被注册为 Spring Bean。

通过在配置类中定义 @Bean 方法,我们可以更加灵活地创建和配置 Spring Bean,并由 Spring IoC 容器进行管理。

总之,@Configuration 注解的作用是将标注的类声明为配置类,用于定义 Bean 的创建和配置。在 @SpringBootApplication 中使用 @Configuration 注解是可选的,因为 @Configuration 功能已经包含在 @SpringBootApplication 中。

🍁🍁 09、@SpringBootApplication 注解的详细用法是怎样的?

@SpringBootApplication 是一个组合注解,它是 Spring Boot 提供的一个用于简化配置的注解。它包含了以下三个注解的功能:

  1. @Configuration: 将类标记为配置类,用于定义 Bean 的创建和配置。
  2. @EnableAutoConfiguration: 开启自动配置功能,让 Spring Boot 自动根据依赖、配置和类路径等信息来进行自动配置。
  3. @ComponentScan: 开启组件扫描,让 Spring Boot 扫描并注册当前包及其子包下的所有 Spring 组件,包括定义的控制器、服务等。

因此,通过在主启动类上添加 @SpringBootApplication 注解,就可以同时实现上述三个注解的功能,简化了配置并提供了自动化的特性。

以下是一个示例代码,展示了 @SpringBootApplication 注解的详细用法:

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplication // 在主启动类上添加 @SpringBootApplication 注解
public class Application {public static void main(String[] args) {SpringApplication.run(Application.class, args);}
}

在上述示例中,Application 类被标注为 @SpringBootApplication 注解,这意味着它是主启动类,并且具备了配置类、自动配置和组件扫描的功能。

通过 SpringApplication.run(Application.class, args) 方法来启动 Spring Boot 应用,它会自动扫描、加载配置,并启动嵌入式的 Tomcat 服务器,以提供 Web 服务。

总之,@SpringBootApplication 是一个组合注解,包含了 @Configuration@EnableAutoConfiguration@ComponentScan 的功能,可以简化配置并提供自动化的特性。在主启动类上添加该注解,即可启动一个 Spring Boot 应用。

🍁🍁 10、如何禁用 @SpringBootApplication 中的自动配置机制?

如果你需要禁用 @SpringBootApplication 中的自动配置机制,你可以使用 exclude 参数来排除特定的自动配置类。你可以在 @SpringBootApplication 注解上使用 exclude 参数,并传入要排除的自动配置类的类对象或类数组。

以下是一个示例代码,展示了如何禁用自动配置:

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.security.servlet.SecurityAutoConfiguration;@SpringBootApplication(exclude = {SecurityAutoConfiguration.class}) // 使用 exclude 参数排除 SecurityAutoConfiguration 类
public class Application {public static void main(String[] args) {SpringApplication.run(Application.class, args);}
}

在上述示例中,我们将 SecurityAutoConfiguration.class 作为 exclude 参数传递给 @SpringBootApplication 注解,这样就禁用了 Spring Boot 的安全自动配置。

同样地,你也可以传入其他的自动配置类来禁用相应的自动配置。

需要注意的是,禁用自动配置可能会导致某些功能无法正常工作,因此在禁用自动配置之前,建议仔细考虑和测试应用的需求和功能。

除了使用 exclude 参数来禁用特定的自动配置类,还有其他方法可以禁用 @SpringBootApplication 中的自动配置机制。下面介绍两种常用的方法:

  1. 使用 @EnableAutoConfiguration 注解:@SpringBootApplication 实际上包含了@EnableAutoConfiguration 注解,因此你可以直接在主启动类上使用 @EnableAutoConfiguration 注解来启用自动配置。如果你不需要自动配置,可以将该注解添加到主启动类上并添加 exclude 参数来排除所有自动配置类。例如:

    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
    import org.springframework.boot.autoconfigure.security.servlet.SecurityAutoConfiguration;@EnableAutoConfiguration(exclude = {SecurityAutoConfiguration.class}) // 使用 exclude 参数排除 SecurityAutoConfiguration 类
    public class Application {public static void main(String[] args) {SpringApplication.run(Application.class, args);}
    }
    

    这样可以禁用 @SpringBootApplication 中的自动配置机制,只保留你手动添加的配置。

  2. 使用配置属性:Spring Boot 提供了一系列的配置属性,可以通过配置文件或者代码设置来控制自动配置的行为。你可以通过设置相关的配置属性来禁用自动配置。例如,在 application.properties 或者 application.yml 配置文件中添加以下配置项可以禁用所有自动配置:

    spring.autoconfigure.exclude=org.springframework.boot.autoconfigure.*
    

    或者在主启动类中使用 SpringApplication.setDefaultProperties() 方法来设置配置属性,例如:

    import org.springframework.boot.SpringApplication;public class Application {public static void main(String[] args) {SpringApplication.setDefaultProperties(Collections.singletonMap("spring.autoconfigure.exclude", "org.springframework.boot.autoconfigure.*"));SpringApplication.run(Application.class, args);}
    }
    

    通过设置 spring.autoconfigure.exclude 属性为自动配置类的包名或者通配符,可以禁用相应的自动配置。

无论你选择哪种方法,禁用自动配置都需要谨慎操作,确保你明确了解禁用的自动配置对你的应用会产生什么影响。

在这里插入图片描述

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

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

相关文章

Spring Cloud Gateway + Nacos 实现动态路由

1、maven 依赖 主要依赖 <!-- 网关 --><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-gateway</artifactId></dependency>案件差不多完整主要依赖 <!--Spring boot 依赖(微服务基…

fanout(扇出模型)

在广播的流程下&#xff0c;消息发送的流程如下&#xff1a; 可以有多个消费者。 每个消费者有自己的queue(队列)。 每个队列都要绑定到Exchange(交换机)。 生产者发送的消息&#xff0c;只能发送到交换机&#xff0c;交换机来决定要发给哪个队列&#xff0c;生产者也无法决…

oracle物化视图

物化视图定义 视图是一个虚拟表&#xff08;也可以认为是一条语句&#xff09;&#xff0c;基于它创建时指定的查询语句返回的结果集&#xff0c;每次访问它都会导致这个查询语句被执行一次&#xff0c;为了避免每次访问都执行这个查询&#xff0c;可以将这个查询结果集存储到…

【算法题】矩阵顺时针旋转90° (js)

力扣链接&#xff1a;https://leetcode.cn/problems/rotate-matrix-lcci/description/ 本人题解&#xff1a; /*** param {number[][]} matrix* return {void} Do not return anything, modify matrix in-place instead.*/ var rotate function (matrix) {const x matrix.le…

Spring高手之路-Spring事务的传播机制(行为、特性)

目录 含义 七种事务传播机制 1.REQUIRED&#xff08;默认&#xff09; 2.REQUIRES_NEW 3.SUPPORTS 4.NOT_SUPPORTED 5.MANDATORY 6.NEVER 7.NESTED 含义 Spring事务的传播机制是指在多个事务方法相互调用时&#xff0c;如何处理这些事务的传播行为。对应七种事务传播行为…

Halcon闭运算closing

Halcon闭运算 文章目录 Halcon闭运算 闭运算的计算步骤&#xff0c;为先膨胀&#xff0c;后腐蚀。这两步操作能将看起来很接近的元素&#xff0c;如区域内部的空洞或外部孤立的点连接成一体&#xff0c;区域的外观和面积也不会有明显的改变。通俗地说&#xff0c;就是类似于“填…

Linux 权限掌控术:深入探索和用户管理

文章目录 前言1.外壳程序是什么&#xff1f;外壳程为什么存在&#xff1f;工作原理外壳程序怎么个事&#xff1f; 2. Linux权限的概念2.1 什么是权限2.2权限的本质2.3 Linux中的用户 3. 普通用户变成rootlinux中有三种人 4.Linux中文件的权限4.1文件的属性权限4.2 掌握修改权限…

2024.1.1每日一题

LeetCode每日一题 新的一年开始了&#xff0c;祝大家新年快乐&#xff0c;坚持做每日一题。 1599.经营摩天轮的最大利润 1599. 经营摩天轮的最大利润 - 力扣&#xff08;LeetCode&#xff09; 题目描述 你正在经营一座摩天轮&#xff0c;该摩天轮共有 4 个座舱 &#xff0…

DevOps系列之 JNI实现Java调用C的实现案例

JNI&#xff08;Java Native Interface&#xff09;允许Java代码与其他语言编写的代码进行交互。以下是一个简单的JNI示例&#xff0c;演示如何使用JNI在Java中调用C/C函数。 最终的目录结构如下&#xff1a; JNI&#xff08;Java Native Interface&#xff09;允许Java代码与其…

服务器硬件及RAID配置实战

目录 1、RAID的概念 2、RAID的实现方式 3、标准的RAID 3.1 RAID 0 3.2 RAID 1 3.3 RAID 5 3.4 RAID 10 4、建立硬件 RAID的过程步骤 1、进入RAID 1.1 重启服务器 1.2 进入RAID界面 1.3 在RAID界面切换目录 2、创建RAID 2.1 移动到RAID卡 2.2 按F2&#xff0c;选择…

lenovo联想拯救者8.8英寸掌上游戏机Legion Go 8APU1(83E1)原装出厂Windows11预装系统

链接&#xff1a;https://pan.baidu.com/s/1d586XWXcAWVxlLyV2Oku7Q?pwdd74t 提取码&#xff1a;d74t 系统自带所有驱动、出厂主题壁纸、Office办公软件、联想电脑管家等预装程序 所需要工具&#xff1a;16G或以上的U盘 文件格式&#xff1a;ISO 文件大小&#xff1a;…

适用于各种危险区域的火焰识别摄像机,实时监测、火灾预防、安全监控,为安全保驾护航

火灾是一种极具破坏力的灾难&#xff0c;对人们的生命和财产造成了严重的威胁。为了更好地预防和防范火灾&#xff0c;火焰识别摄像机作为一种先进的监控设备&#xff0c;正逐渐受到人们的重视和应用。本文将介绍火焰识别摄像机在安全监控和火灾预防方面的全面应用方案。 一、火…

操作系统(Operator System)

这里写目录标题 1. 什么是操作系统2. 主要功能3. 计算机的层状结构4. 什么叫做管理5. 总结6. 为什么要有操作系统7. 最后 1. 什么是操作系统 操作系统&#xff08;英语&#xff1a;Operating System&#xff0c;缩写&#xff1a;OS&#xff09;是一组主管并控制计算机操作、运…

CRM客户关系管理系统

系统开发环境以及版本 操作系统&#xff1a; Windows_7集成开发工具&#xff1a; Eclipse EE_4.7编译环境&#xff1a;JDK_1.8Web服务器&#xff1a;Tomcat_9.0数据库&#xff1a;MySQL_5.7.23 系统框架 spring框架springmvc框架mybatis框架Logback日志框架安全验证框架maven框…

你逛过凌晨四点的校园吗?--大四毕业生的年终总结

前言&#xff1a; Hello大家好&#xff0c;我是Dream。 又是一年的年终总结&#xff0c;我也迎来了自己的毕业季&#xff0c;没错&#xff0c;我马上要毕业啦&#xff01;不知道大家是什么时候认识我的呢&#xff0c;又或者是第一次发现我~这一年&#xff0c;迎接过朝阳、拍下过…

Filezilla使用

服务端 点击安装包 点击我接受 点击下一步 点击下一步 点击下一步 点击安装即可 配置用户组&#xff0c;点击编辑&#xff0c;出现组点击 点击添加&#xff0c;点击确定即可 配置用户&#xff0c;点击编辑点击用户 点击添加&#xff0c;设置用户名&#xff…

搭建 Mac系统Arduino + MindPlus开发环境

搭建 Mac系统Arduino MindPlus开发环境 1.概述 2024年1月1号&#xff0c;元旦大家的安排丰富多彩&#xff0c;在这一天中我的安排依旧坚持初心&#xff0c;牢记使命。学习是我的起点也是我的终点&#xff0c;只要活着就要用知识丰富自己的生活。 今天是一个有意义的日子&…

数据结构—树的应用

文章目录 11.树的应用(1).Huffman树#1.加权外部路径长度#2.Huffman算法#3.Huffman编码 (2).二叉搜索树#1.基本定义#2.查找#3.插入结点#4.构建树#5.查找最小值和最大值#6.删除结点#7.一个问题 (3).平衡搜索树#1.满二叉树、完全二叉树和丰满二叉树#2.平衡因子和平衡树#3.左旋与右…

DrGraph原理示教 - OpenCV 4 功能 - 阈值

普通阈值 OpenCV中的阈值用于相对于提供的阈值分配像素值。在阈值处理中&#xff0c;将每个像素值与阈值进行比较&#xff0c;如果像素值小于阈值则设置为0&#xff0c;否则设置为最大值&#xff08;一般为255&#xff09;。 在OpenCV中&#xff0c;有多种阈值类型可供选择&am…

模型 冰山理论

本系列文章 主要是 分享 思维模型&#xff0c;涉及各个领域&#xff0c;重在提升认知。冰山下面才是重点。 1 冰山理论的应用 1.1 冰山理论在生活中的常见应用 人际交往&#xff1a;在人际交往中&#xff0c;很多人只关注表面的行为和语言&#xff0c;而忽略了内在的情感和动…