20190827学习笔记

今天学习了 Spring 的配置:

一是基于 XML 文件的配置;二是基于配置类的配置。其中第一种文件需要一个XML配置文件在使用Bean时需要从 xml 文件中加载需要的 bean 。第二种是写一个配置类,在配置类中进行相关的配置,以下是示例代码。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
package com.xxx.config;
import com.mchange.v2.c3p0.ComboPooledDataSource;
import com.mchange.v2.c3p0.DataSources;
import org.apache.commons.dbutils.QueryRunner;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Scope;
import javax.sql.DataSource;
import java.beans.PropertyVetoException;

/**
* 该类是一个配置类,它的作用和bean.xml是一样的
* SPRING中的新注解
* CONFIGRATION
* 作用:指定当前类是一个配置类
* 细节:当配置类作用AnnotationConfigApplicationContext对象创建的参数时,该注解可以不写
* COMPONENTCSCAN
* 作用:用于通过此注解指定spring 在创建容器时要扫描的包
* 属性:
* value: 它和basePackages的作用是一样的,都是用于包扫描.使用此注解相当于在xml中配置了:
* <context:component-scan base-package="com.luopandeng"/>
* Bean
* 作用:用于把当前方法的返回值作为Bean对象存入spring的ioc容器中
* 属性:name: 用于指定bean的id.当不写时默认值是当前方法的名称
* 细节:当我们使用注解配置方法时,如果方法有参数,spring 框架会去容器中查找有没有可用的bean 对象。
* 查找的方式和autowired注解的作用是一样的
* @PropertySource
* 作用:用于指定properties 文件的位置
* 性情:文件的名称和路径
* 关键字:classpath 表示类路径
*/
@ComponentScan(basePackages = {"com.luopandeng"})
@Configuration
public class SpringConfiguration {
/**
* Configration Code
*/
}

总结,xml 方件配置是通过读取配置文件利用反射的方式创建 bean,而配置类则是通过直接创建对象的方式进行 bean 的创建。这个描述可能不准确。

3 min. read