bean的基础配置

名称:bean

类型:标签

所属:beans标签

功能:定义Spring核心容器管理的对象

格式:<beans>

              <bean>

              </bean>

          </beans>

属性列表:id:bean的id,使用容器可以获取对应的bean,在一个容器中id值唯一

class:bean的类型,即配置的bean的全路径类名

范例:

ApplicationContext app = new ClassPathXmlApplicationContext("application.xml");
//app。getBean括号中的book就是下面bean标签的id bean标签中的class后面写的是包下的本类
          BookDao bookDao= (BookDao) app.getBean("book")
          bookDao.sayhello();
<bean id="book" class="com.haina.Book.BookDao.BookDao">
</bean>
public class BookDao {
    public void sayhello(){
        System.out.println("hello");
    }
}

Bean作用范围配置:

名称:scope

类型:属性

功能:定义bean的作用范围,可选范围如下:

singleton:单例

prototype:非单例

示例:

<bean id="book" class="com.haina.Book.BookDao.BookDao" scope="prototype">

bean默认是使用构造方法创建对象,如果本类没有构造方法将创建不了对象

使用静态方法创建对象,需要在bean标签的配置中写入factory-method=“getOrderDao”

使用动态方法创建对象,需要在bean标签的配置中写入factory-method=“实例方法名” factory-bean=“bean标签的id”

Bean的生命周期

生命周期:从创建到消亡的过程

bean的生命周期的控制:在bean创建到销毁的过程中做一些事情

A.初始化容器

1 创建对象(内存分配)

2 执行构造方法

3 执行属性注入(set方法)

4 执行bean初始化方法(init-method=“名称”)

B.使用Bean

1 执行业务操作

C。关闭容器

1 执行bean销毁方法(destroy-method=“名称”)

Bean注入数据的方式

1 使用set方法

2 使用构造方法

依赖注入方法

1 set注入

简单类型 :配置中使用property标签value属性注入简单类型数据

引用类型 :配置中使用property标签ref属性注入引用数据类型(里面写入为别的bean标签中的id)

2 构造器注入

简单类型 :配置中使用constructor-arg name(里面写入构造方法的形参)value(里面写入对应类型的数据)

引用类型 :配置中使用constructor-arg name(里面写入构造方法的形参)

也可使用 constructor-arg type(里面写入构造方法的类型)

也可使用 constructor-arg index(里面写入构造方法的形参顺序)

ref(里面写入别的bean标签中的id)

集合注入

在bean标签与bean结束标签中写入数据

property name(写入的是集合或者数组的名称)

在property name标签中创建一个以集合或者数组为名称标签

在标签内部写入数据

基本数据类型使用value写入

引用数据类型使用ref写入

数据源对象管理

导入druid做标


<dependency>
<groupId>com.alibaba</groupId>

<artifactIdSdruid</artifactId>

<version>1.1.16</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://127.0.0.1:3306/spring_db"/>

<property name="username" value="root"/>
<property name="password" value="root"/>
</bean>

开启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="username" value="${jdbc.username}"/>

,不加载系统属性
<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"/>

加载properties文件

方式一:类路径加载配置文件
ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xm1");
方式二:文件路径加载配置文件
ApplicationContext ctx = new FileSystemXmlApplicationContext("D:\\applicationContext.xml");
加载多个配置文件
ApplicationContext ctx = new ClassPathXmlApplicationContext("bean1.xml","bean2.xml");

获取bean

方式一:使用bean名称获取
BookDao bookDao =(BookDao) ctx.getBean("bookDao");
方式二:使用bean名称获取并指定类型
BookDao bookDao = ctx.getBean("bookDao", BookDao.class);
方式三:使用bean类型获取
BookDao bookDao = ctx. getBean(BookDao.class);

容器相关

BeanFactory是IoC容器的顶层接口,初始化BeanFactory对象时,加载的bean延迟加载
ApplicationContext接口是Spring容器的核心接口,初始化时bean立即加载
ApplicationContext接口提供基础的bean操作相关方法,通过其他接口扩展其功能
ApplicationContext接口常用初始化类
ClassPathXmlApplicationContext
FileSystemXmlApplicationContext

bean相关

<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延迟加载

/>

依赖注入相关

<bean id="bookService" class="com.itheima.service.impl.BookServiceImpl">
<constructor-arg name="bookDao" ref="bookDao"/> 构造器注入引用数据类型
<constructor-arg name="userDao" ref="userDao"/>
<constructor-arg name="msg" value="WARN"/> 构造器注入简单数据类型
<constructor-arg type-"java.lang. String" index="3" value="WARN"> 类型匹配与索引匹配

<property name="bookDao" ref="bookDao"/> setter注入引用类型

<property name="userDao" ref="userDao"/>

<property name="msg" value="WARN"/> setter注入简单类型
<property name="names"> setter注入集合类型
<list> list集合
<value>itcast</value> 集合注入简单数据类型

<ref bean="dataSource"/> 集合注入引用数据类型

</list>
</property>
</bean>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值