目录
spring
数据源对象管理
DruidDataSource
- 导入druid坐标
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.2.5</version>
</dependency>
- 配置数据源对象作为spring管理的bean
<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/spring_db"/>
<property name="username" value="root"/>
<property name="password" value="123456"/>
</bean>
ComboPooledDataSource
- 导入坐标
mysql也要导入
<dependency>
<groupId>c3p0</groupId>
<artifactId>c3p0</artifactId>
<version>0.9.1.2</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.49</version>
</dependency>
- 配置数据源对象作为spring管理的bean
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
<property name="driverClass" value="com.mysql.jdbc.Driver"/>
<property name="jdbcUrl" value="jdbc:mysql://localhost:3306/spring_db"/>
<property name="user" value="root"/>
<property name="password" value="123456"/>
</bean>
加载properties文件
- 开启context命名空间
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd
">
</beans>
- 使用context命名空间,加载指定properties文件
<context:property-placeholder location="jdbc.properties"/>
- 使用${}读取加载的属性值
<property name="name" value="${jdbc.driver}"></property>
- 不加载系统属性
<context:property-placeholder location="jdbc.properties" system-properties-mode="NEVER"/>
- 加载多个properties
<context:property-placeholder location="jdbc.properties,msg.properties" />
- 加载所有properties文件
<context:property-placeholder location="*.properties"/>
- 加载properties文件标准格式
<context:property-placeholder location="classpath:*.properties"/>
- 从类路径或jar包中搜索并加载properties文件
<context:property-placeholder location="classpath*:*.properties"/>
容器
创建容器
- 类路径加载配置文件
ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");
- 文件路径加载配置文件
ApplicationContext ctx = new FileSystemXmlApplicationContext("E:\\workspace\\blbl\\idea\\2022.09.30_container\\src\\main\\resources\\applicationContext.xml");
- 加载多个配置文件
ApplicationContext ctx = new ClassPathXmlApplicationContext("bean1.xml","bean2.xml");
获取bean
- 使用bean名称获取
BookDao bookDao = (BookDao) ctx.getBean("bookDao");
- 使用bean名称获取并指定类型
BookDao bookDao = ctx.getBean("bookDap",BookDao.class);
- 使用bean类型获取
BookDao bookDao = ctx.getBean(BookDao.class);
核心容器总结
容器相关
- BeanFactory是IoC容器的顶层接口,初始化BeanFactory对象时,加载的bean延迟加载
- ApplicationContext接口是Spring容器的核心接口,初始化时bean立即加载
- ApplicationContext接口提供基础的bean操作相关方法,通过其他接口扩展其功能
- ApplicationContext接口常用初始化类
- ClassPathXmlApplicationContext(常用)
- FileSystemXmlApplicationContext
bean相关
配置 | 中文 |
---|---|
id="bookDao" | bean的Id |
name="dao bookDaoImpl daoImpl" | bean别名 |
class="com.itheima.dao.impl.BookDaoImpl" | bean类型,静态工厂,FactoryBean类 |
scope="singleton" | 控制bean的实例数量 |
init-method="init" | 生命周期初始化方法 |
destroy-method="destory" | 生命周期销毁方法 |
autowire="byType" | 自动装配类型 |
factory-method="getInstance" | bean工厂方法,应用于静态工厂或实例工厂 |
factory-bean="com.itheima.factory.BookDaoFactory" | 实例工厂bean |
lazy-init="true" | 控制bean延迟加载 |
依赖注入相关
构造器注入
<constructor-arg />
setter注入
<property />
标签:容器,09,ApplicationContext,数据源,30,bean,properties,加载
From: https://www.cnblogs.com/lurui711/p/16744122.html