Spring IoC 配置类 总结

1. 简介

Spring中可以使用配置类完全代替xml来配置IoC容器。

2. 代码

以下代码实现了定义配置并引用外部类,并从外部文件赋值。

java 复制代码
@ComponentScan("com.jojo.ioc")//确定扫描范围
@PropertySource(value = "classpath:jdbc.properties")//指定外部文件
@Configuration//指定该类为配置类
public class JavaConfiguration {

    @Value("${url}") //从外部文件中获取值
    private String url;

    @Value("${driver}")//从外部文件中获取值
    private String driver;

    @Value("${username}")//从外部文件中获取值
    private String username;

    @Value("${password}")//从外部文件中获取值
    private String password;
    
    @Scope(scopeName = ConfigurableBeanFactory.SCOPE_SINGLETON)//定义单例模式
    @Bean(name = "name",initMethod = "", destoryMethod ="") //引用外部类并设置bean name,初始化方法,和销毁方法
    public DruidDataSource dataSource(){
        //实现具体的实例化过程
        DruidDataSource dataSource = new DruidDataSource();
        dataSource.setUrl(url);//设置外部类的值
        dataSource.setDriverClassName(driver);//设置外部类的值
        dataSource.setUsername(username);//设置外部类的值
        dataSource.setPassword(password);//设置外部类的值
        return dataSource;//返回
    }
    
    //外部类引用外部类试例
    @Bean
    public JdbcTemplate jdbcTemplate(DataSource dataSource/* 参数直接声明要引用的类 */){
        JdbcTemplate jdbcTemplate = new JdbcTemplate();

        //方法1.如果dataSource也为自定义bean类方法,直接调用dataSource()
        jdbcTemplate.setDataSource(dataSource());

        //方法2.形参列表声明想要的组件类型
        jdbcTemplate.setDataSource(dataSource);
        return jdbcTemplate;
    }
}

3.导入其他配置类

可以在配置类中引用其他配置类:

java 复制代码
@Import(value = {JavaConfiguration2.class})//导入JavaConfiguration2配置类
@Configuration
public class JavaConfiguration1 {
}
相关推荐
2401_894915532 小时前
GEO 优化源码全解析:从搜索引擎到 AI 引擎的底层改写逻辑
java·服务器·前端·数据库·人工智能·分布式·搜索引擎
Java牛马6 小时前
SpringBoot Starter 依赖相关总结
java·spring·springboot·starter·自动装配·依赖
吴声子夜歌6 小时前
Java面试——Spring Cloud原理及应用(二)
java·spring cloud·面试
SomeB1oody7 小时前
【RustyML入门】6.3. 并行归约
开发语言·后端·机器学习·rust·教程
东小西7 小时前
【SAA实战】第 1 篇:ReactAgent 入门——先撸个"会调工具的助手"跑起来
java·人工智能·spring
Profile排查笔记7 小时前
指纹浏览器哪个好?从 Profile、代理、权限和自动化能力判断是否适合
前端·人工智能·后端·自动化
用户938515635078 小时前
用 AI 结对编程从 0 搭一个"单词后台管理系统":Next.js + Supabase + Drizzle + shadcn/ui 全记录
后端·postgresql·next.js
mqiqe8 小时前
AgentScope Java 2.0 协议集成全景解析:A2A、AG-UI、Agent Protocol 三大开放协议实战指南
java·开发语言·ui
脉动数据行情8 小时前
Java 实现台股 TWSE/TPEx 行情采集(个股 + K 线)
java·开发语言·twse·tpex·台股
爱学习的小邓同学8 小时前
Golang --- (1)第一个Golang程序
开发语言·后端·golang