通过数据源获取链接
普通 配置xml文件
<bean id="dataSource"class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="url"value="jdbc:mysql://localhost:3306/adb"></property>
<property name="username"value="root"></property>
<property name="password"value="123456"></property>
<property name="driverClassName"value="com.mysql.jdbc.Driver"></property>
</bean>
通过外部属性文件配置xml文件
bean来定义读取资源文件
<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="location"value="jdbc.properties"></property>
</bean>(配置外部properties文件)
context命名空间 读取资源文件
引入:(1)xmlns:context="http://www.springframework.org/schema/context"
(2) xsi:schemaLocation=”加入http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.2.xsd”
<context:property-placeholderlocation="classpath:/cn/et/lesson02/jdbc/jdbc.properties"/>
${username}是个关键字 默认获取操作系统的用户名Administrator
当使用bean来定义读取时username默认使用资源文件中的值
当使用context命名空间时username默认使用系统用户名
所以注意命名问题尽量不要使用username命名。
<bean id="dataSource"class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="url"value="${url}"></property>
<propertyname="username" value="${username1}"></property>
<property name="password"value="${password}"></property>
<property name="driverClassName"value="${driverClass}"></property>
</bean>(读取配置文件)
<!-- 封装一些操作的方法 -->
<beanid="jdbcTemplate"class="org.springframework.jdbc.core.JdbcTemplate">
<property name="dataSource"ref="dataSouce"></property>
</bean>
这个类里面封装了一些操作数据库的方法,实例化这个类可以用sql语句操作数据库
Spring bean的生命周期
Spring可以通过bean指定类中的方法为init和destory方法
<bean id="a" class="cn.et.lesson02.cycle.A" init-method="ini"destroy-method="des">
</bean>
Init初始化方法 :容器创建bean之后调用
Destory结束方法: 容器销毁bean时 调用
通过ConfigurableApplicationContext中的close()方法调用destory销毁方法.
在classpath中自动扫描并实例化类
<context:component-scan base-package="cn.et.lesson02.anno(包名)"></context:component-scan>
- @Component: 基本注解, 标识了一个受 Spring 管理的组件
- @Respository: 标识持久层组件
- @Service: 标识服务层(业务层)组件(业务逻辑层)
- @Controller: 标识表现层组件
这四种注解功能都一样,需要实例化什么类就在类中加上注解,spring会自动实例化有注解的类,当未命名组件名时,组件名默认为类名第一个字母小写. 也可以在注解中通过 value 属性值标识组件的名称
Component (“abcd”)以abcd命名实例化的组件名.