一、IOC操作Bean管理(外部属性文件)
1.直接配置数据库信息
- 配置德鲁伊连接池
- 引入德鲁伊连接池依赖jar包
<!--配置连接池-->
<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver"></property>
<property name="url" value="jdbc:mysql://localhost:3306/atguigu"></property>
<property name="username" value="root"></property>
<property name="password" value="root"></property>
</bean>
2.引入外部属性文件配置数据库连接池
①创建外部属性文件,properties写数据信息jdbc.properties
prop.driveClass=com.mysql.jdbc.Driver
prop.url=jdbc:mysql://localhost:3306/atguigu
prop.username=root
prop.password=root
②外部jdbc.properties属性文件引入到spring配置xml文件中
-
引入名称空间context
- 在xml配置文件使用标签引入外部属性文件
<!--1.引入外部属性文件-->
<context:property-placeholder location="classpath:jdbc.properties"/>
<!--2配置连接池-->
<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource">
<property name="driverClassName" value="${prop.driveClass}"></property>
<property name="url" value="${prop.url}"></property>
<property name="username" value="${prop.username}"></property>
<property name="password" value="${prop.password}"></property>
</bean>
二、IOC操作Bean管理(基于注解方式)
1.什么是注解
- 注解是代码特殊的标记,格式是:@注解名称(属性名称=属性值)
- 使用注解,注解作用在类的上面,属性上面,方法上面。
- 使用注解的目的:简化xml配置。
2.Spring针对Bean管理创建对象提供注解
- @Component
- @Service
- @Controller
- @Repository
*上面的注解功能一样,都用来创建bean实例
3.基于注解方式实现对象的创建
- 引入依赖
- 开启组件扫描,扫描全部的注解
- 在相应的包创建类,在类上面加上注解
//在注解里面的value可以省略不写。
//默认值是类的名称UserService,首字母小写userService
@Component(value = "userService") //<bean id="userService" class="..."/>
测试
4.开启组件扫描细节配置
- 扫描指定的注解
<context:component-scan base-package="com.zhilei" use-default-filters="false" >
<context:include-filter type="annotation"
expression="org.springframework.stereotype.Controller"/>
</context:component-scan>
- 指定注解不扫描
5.基于注解方式实现属性注入
- @AutoWired 根据属性类型进行自动装配
- @Qualifier 根据属性名称进行注入
- @Resource 根据类型或名称注入
- @Value 注入普通类型属性
6. @AutoWired实现属性注入
①在service和dao类添加创建对象的注解
②在service注入dao对象,在service类添加dao类型属性,在属性上面使用
③效果测试
配置文件
<context:component-scan base-package="com.zhilei.spring5"></context:component-scan>
测试
7. @Qualifier :根据属性名称进行注入:@Qualifier和@Autowired一起使用
如果一个接口,有多个实现类,就要指定名称了
8. @Resource 根据类型或名称注入 –不建议
@Service
public class UserService {
@Resource //根据类型进行注入
或者
@Resource(name = "userDaoImpl")
private UserDao userDao;
public void add(){
System.out.println("userService add()....");
userDao.add();
}
测试
9. @Value 注入普通类型属性
测试输出abc
三、IOC操作Bean管理(完全注解开发)
1.创建配置类,替代xml配置文件 @Configuration
2.编写测试类