【Spring】IOC/DI配置管理第三方bean

IOC/DI配置管理第三方bean

很多时候我们会需要用到第三方jar包中的类,此时我们需要管理这些类,本次案例将使用数据源druid(DataSource)来完成配置学习。

需求分析:使用Spring的IOC容器来管理Druid连接池对象

简单代码实现

  1. 在pom.xml中添加Druid依赖。
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>org.example</groupId>
    <artifactId>itheima_spring_ioc</artifactId>
    <version>1.0-SNAPSHOT</version>

    <properties>
        <maven.compiler.source>11</maven.compiler.source>
        <maven.compiler.target>11</maven.compiler.target>
    </properties>
    <dependencies>
        <!--spring-context为spring开发的基本包-->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>5.0.5.RELEASE</version>
        </dependency>
        <!--数据库连接池 德鲁伊-->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
            <version>1.1.10</version>
        </dependency>
    </dependencies>
</project>
  1. 在spring配置文件中将数据源制作成一个bean,让IOC容器进行管理。
    <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource">
        <property name="driverClassName" value="com.mysql.cj.jdbc.Driver"/>
        <property name="url" value="jdbc:mysql:///mybatis"/>
        <property name="username" value="root"/>
        <property name="password" value="qq12345652"/>
    </bean>
  1. 从IOC容器中获取对应的bean对象,将其打印到控制台查看结果。
public class App {
    public static void main(String[] args) {
        ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml");
        DataSource dataSource = (DataSource)applicationContext.getBean("dataSource");
        System.out.println(dataSource);
    }
}

加载properties文件

在上面的代码中,我们把数据库连接的四要素直接写在了Spring的配置文件中,这样不利于后期维护。更好的方式是我们将四要素写在jdbc.properties中,然后由spring的配置文件来读取。

  1. 在resources下创建jdbc.properties
  2. 将数据库连接四要素配置到jdbc.properties中
jdbc.driver=com.mysql.cj.jdbc.Driver
jdbc.url=jdbc:mysql:///mybatis
jdbc.username=root
jdbc.password=root
  1. 在Spring的配置文件中加载properties文件
<?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">

    <context:property-placeholder location="classpath:jdbc.properties" system-properties-mode="NEVER"/>
  1. 使用加载到的值实现属性注入
 <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource">
        <property name="driverClassName" value="${jdbc.driver}"/>
        <property name="url" value="${jdbc.url}"/>
        <property name="username" value="${jdbc.username}"/>
        <property name="password" value="${jdbc.password}"/>
    </bean>

学习总结

使用IOC/DI配置管理第三方bean最终版本步骤如下:

  1. 创建maven项目
  2. 在pom.xml中添加spring-context、druid依赖
  3. 创建jdbc.properties,并在其中配置数据库连接四要素
  4. 在spring的配置文件中创建新的命名空间context,读取外部properties
  5. 在spring的配置文件中添加关于DataSource的bean,并使用${}为其属性赋值
  6. 从容器中获取对象并调用其方法
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
步骤: 1. 创建Maven项目 在IDEA中,选择File -> New -> Project,选择Maven,按照向导完成创建。 2. 导入Spring框架相关jar包 在pom.xml文件中添加如下依赖: ``` <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>5.3.2</version> </dependency> ``` 3. 编写applicationContext.xml文件 在src/main/resources目录下创建applicationContext.xml文件,添加如下配置: ``` <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsd"> <!-- 配置bean --> <bean id="userService" class="com.example.UserService"> <property name="userDao" ref="userDao"/> </bean> <bean id="userDao" class="com.example.UserDao"/> </beans> ``` 4. 通过xml配置方式实现依赖注入 在UserService类中添加如下代码: ``` public class UserService { private UserDao userDao; public void setUserDao(UserDao userDao) { this.userDao = userDao; } } ``` 通过setUserDao方法注入UserDao对象。 5. 通过注解方式实现依赖注入 在UserDao类上添加如下注解: ``` @Component public class UserDao {} ``` 在UserService类中添加如下注解和代码: ``` @Service public class UserService { @Autowired private UserDao userDao; } ``` 通过@Autowired注解注入UserDao对象。 6. 测试 在测试类中创建ApplicationContext对象,加载applicationContext.xml文件,获取UserService对象,并调用相关方法。 参考资料: Spring官方文档:https://docs.spring.io/spring-framework/docs/current/spring-framework-reference/core.html#beans Spring注解:https://docs.spring.io/spring-framework/docs/current/spring-framework-reference/core.html#beans-annotation-config

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值