@Configuration大悟!

简介: @Configuration大悟!

当你在一个 Java 项目中看到 @Configuration 注解时,它实际上就是告诉 Spring:“嘿,这个类是用来配置我们应用程序的!”


想象一下,你有一个 Java 项目,里面有很多 Java 类。有些类是用来完成具体的业务逻辑,比如处理订单或者管理用户。而另一些类是用来告诉 Spring 如何创建和管理这些业务类的。这些告诉 Spring 如何管理的类就是配置类,而 @Configuration 就是用来标识这些类的。


让我们举个例子:


假设你有一个名为 DatabaseConfig 的类,你希望在这个类里配置数据库连接。你会在这个类上添加 @Configuration 注解。然后,你可能会在这个类里使用 @Bean 注解来声明一个方法,这个方法会返回一个数据库连接池或者一个数据库连接对象。这样一来,当 Spring 启动时,它会读取这个配置类,根据你的配置创建并管理数据库连接,让你的业务类可以方便地使用这些连接。

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.jdbc.datasource.DriverManagerDataSource;
import javax.sql.DataSource;

@Configuration
public class DatabaseConfig {

    @Bean
    public DataSource dataSource() {
        DriverManagerDataSource dataSource = new DriverManagerDataSource();
        dataSource.setDriverClassName("com.mysql.jdbc.Driver");
        dataSource.setUrl("jdbc:mysql://localhost:3306/mydatabase");
        dataSource.setUsername("username");
        dataSource.setPassword("password");
        return dataSource;
    }
}

在这个例子中,DatabaseConfig 类使用 @Configuration 注解标记为配置类。然后,它使用 @Bean 注解声明了一个名为 dataSource 的方法,这个方法返回一个 DataSource 对象,用于配置数据库连接信息。


通过使用 @Configuration 和 @Bean 注解,你可以让 Spring 知道哪些类是配置类,以及如何创建和管理 bean。这样,你的应用程序就能够更容易地配置和管理各种组件了。


相关文章
|
NoSQL Redis
Consider defining a bean of type ‘com.bsj.system.service.RedisService‘ in your configuration
Consider defining a bean of type ‘com.bsj.system.service.RedisService‘ in your configuration
570 0
|
6月前
|
XML Java 数据格式
|
XML Java 程序员
Spring启动报错--class path resource [Beans.xml] cannot be opened because it does not exist
程序员不是在去生产bug的路上,那就是在去解决bug的路上。🤣🤣🤣🤣
254 1
|
Java 数据库连接
org.hibernate.cfg.Configuration.addAnnotatedClass(Ljava/lang/Class;)Lorg/hibernate/cfg/Configuration
Error creating bean with name 'entityManagerFactory' defined in file [E:\eclipseworkspace\wms_ims\.metadata\.plugins\org.eclipse.wst.server.core\tmp9\wtpwebapps\shopping\WEB-INF\classes\applicationContext-configuration.xml]: Invocation of init method failed; nested exception is java.lang.NoSuchMetho
101 0
|
Java Spring 容器
@Configuration注解
@Configuration注解
162 0
|
Python Windows Web App开发
VS Code Plugins And Configuration
VS Code插件 vscode-icons: 显示文件类型的图标 project manager: 管理项目, 项目的保存加载与切换 beautify: 控制缩进 code runner: 执行代码 debugger for chrome eslint: 代码规范检测 include autocomplete: 头文件自动补全, json配置文件为c_cpp_properties.
1138 0
|
Java Spring 数据格式
@Configuration和@Bean
@Configuration可理解为用spring的时候xml里面的 @Bean可理解为用spring的时候xml里面的 Spring Boot不是spring的加强版,所以@Configuration和@Bean同样可以用在普通的spring项目中,而不是Spring Boot特有的,只是在spr...
1345 0