基于xml的Spring配置二(Spring 配置非自定义Bean)

时间:2022-12-08 17:12:45

以上在xml 中配置的Bean都是自己定义的,例如: UserDaolmpl,UserServicelmpl。但是,在实际开发中有些功能类并不是我们自己定义的,而是使用的第三方jar包中的,那么,这些Bean要想让Spring进行管理,也需要对其进行配置。

配置非自定义的Bean需要思考如下两个问题:

  • 被配置的Bean的实例化方式是什么?无参构造、有参构造、静态工厂方式还是实例工厂方式;
  • 被配置的Bean是否需要注入必要属性。例如:数据库的四个必备属性。
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.49</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.2.9</version>
</dependency>
// 手动配置方式  不由spring管理
DruidDataSource druidDataSource = new DruidDataSource();
druidDataSource.setDriverClassName();
druidDataSource.setUrl();
druidDataSource.setUsername();
druidDataSource.setPassword();
<bean  class="com.alibaba.druid.pool.DruidDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver"></property>
<property name="url" value="jdbc:mysql://127.0.0.1:3306/databaseName"></property>
<property name="username" value="root"></property>
<property name="password" value="123456"></property>
</bean>

配置非自定义 Bean-connection

// 手动配置方式  不由spring管理
Class.forName("com.mysql.jdbc.Driver");
Connection connection = DriverManager.getConnection("", "", "");
<bean  class="java.lang.Class" factory-method="forName">
<constructor-arg name="className" value="com.mysql.jdbc.Driver"></constructor-arg>
</bean>
<bean class="java.sql.DriverManager" factory-method="getConnection" scope="prototype">
<constructor-arg name="url" value="jdbc:mysql://127.0.0.1:3306/databaseName"></constructor-arg>
<constructor-arg name="user" value="root"></constructor-arg>
<constructor-arg name="password" value="123456"></constructor-arg>
</bean>

配置非自定义 Bean-Date

String currentDate = "2022-11-11 11:11:11";
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date parse = dateFormat.parse(currentDate);
<bean  class="java.text.SimpleDateFormat" >
<constructor-arg name="pattern" value="yyyy-MM-dd HH:mm:ss"></constructor-arg>
</bean>
<bean factory-bean="simpleDateFormate" factory-method="parse">
<constructor-arg name="source" value="2022-11-11 11:11:11"></constructor-arg>
</bean>

配置非自定义 Bean-SqlSessionFactory

<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.9</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>