ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

Spring IOC基于javaconfig配置使用

2021-06-27 13:34:06  阅读:172  来源: 互联网

标签:String Spring private javaconfig Bean dataSource mysql IOC


一、简介

在 Spring4 的版本, JavaConfig 已正式成为 Spring4 的核心功能 。

二、环境准备

  1. 创建maven项目
  2. 添加依赖
		<dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>5.2.6.RELEASE</version>
        </dependency>

三、实例解析

1.@Configuration

添加javaconfig,手动创建bean,再将创建好的Bean交给spring容器管理

@Configuration//相当于xml文件的bean标签
@ComponentScan(basePackages = "com.tedu.liyu")//<context:component-scan base-package="" >
@PropertySource("classpath:db.properties")//引入依赖文件
public class IocJavaConfig {
    @Value("${mysql.username}")
    private String dataSourceName;
    @Value("${mysql.password}")
    private String dataSourcePassword;
    @Value("${mysql.url}")
    private String dataSourceUrl;
    @Value("${mysql.driverClassName}")
    private String dataSourceDriverClassName;


    @Bean
    public DruidDataSource dataSource(){
        DruidDataSource dataSource = new DruidDataSource();
        dataSource.setName(dataSourceName);
        dataSource.setPassword(dataSourcePassword);
        dataSource.setUrl(dataSourceUrl);
        dataSource.setDriverClassName(dataSourceDriverClassName);
        return dataSource;
    }

    @Bean(initMethod = "init",destroyMethod = "destroy")
    public Person person(){
        Person person = new Person();
        person.setPersonName(dataSourceName);
        return person;
    }


}

如上代码:
@Bean(initMethod = “init”,destroyMethod = “destroy”)其中initMethod为初始化时调用方法,destroyMethod 为IOC容器关闭后加载
init、destroy方法需要在修饰的类中添加

2.Bean的作用域

singleton:单例,只会在IOC容器中创建一次
prototype:多例,每次获取IOC容器都会new一个bean
在需要的类上添加如下注解:

@Scope("prototype")

3.懒加载

//true:在使用时,才会加载
@Lazy(value = true)

标签:String,Spring,private,javaconfig,Bean,dataSource,mysql,IOC
来源: https://blog.csdn.net/study_study_know/article/details/118197923

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有