几乎每个后端程序员在实际工作中或学习中都会用到spring,spring为我们创建了对象,摒弃了直接在代码中new一个对象的方法,其最大的特点就是:解耦合,可以说解耦合也是spring的一大特点。下面我们介绍spring创建bean的三种形式:
其中创建项目及新建类的过程省略,只保留主要文件。
第一种:通过构造函数来创建对象
首先新建一个person类,很简单的一个person类,只有set和get方法
- package org.example;
-
- public class Person {
-
- private String name;
-
- private String age;
-
- public String getName() {
- return name;
- }
-
- public void setName(String name) {
- this.name = name;
- }
-
- @Override
- public String toString() {
- return "Person{" +
- "name='" + name + '\'' +
- ", age='" + age + '\'' +
- '}';
- }
-
- public String getAge() {
- return age;
- }
-
- public void setAge(String age) {
- this.age = age;
- }
- }
然后新建applicationContext.xml文档
<bean id = "person" class="org.example.Person">
最后再新建一个test类,可以用自带的
- @Test
- public void test2(){
- ApplicationContext ctx = new ClassPathXmlApplicationContext("/applicationContext.xml");
- //1
- Person person = (Person)ctx.getBean("person");
- //2
- Person person1 = ctx.getBean("person",Person.class);
- //3
- Person person2 = ctx.getBean(Person.class);
- System.out.println(person);
- System.out.println(person1);
- System.out.println(person2);
- }
其中1,2,3分别代表三种获取bean对象的形式,执行该test类,这是第一种方法。
第二种方式:通过实例工厂
首先创建一个类ConnectionFactory。
- package factoryBean;
-
- import java.sql.Connection;
- import java.sql.DriverManager;
- import java.sql.SQLException;
-
- public class ConnectionFactory {
-
- public Connection getConnection(){
- Connection connection = null;
- try {
- Class.forName("com.mysql.jdbc.Driver");
- connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/db_nacos?useSSL=false","root","123456");
- } catch (ClassNotFoundException e) {
- e.printStackTrace();
- } catch (SQLException e) {
- e.printStackTrace();
- }
- return connection;
- }
-
- }
然后applicationContext.xml中添加如下内容
- <bean name="connectionFactory" class="factoryBean.ConnectionFactory"/>
- <bean name="conn" factory-bean="connectionFactory" factory-method="getConnection"/>
然后再编写测试类
- @Test
- public void test3(){
- ApplicationContext ctx = new ClassPathXmlApplicationContext("/applicationContext.xml");
- Connection conn = (Connection) ctx.getBean("conn");
- System.out.println(conn);
- }
直接运行结果即可,这是第二种创建实例工厂
第三种:创建静态工厂
首先创建类StaticConnectionFactory
- package factoryBean;
-
- import java.sql.Connection;
- import java.sql.DriverManager;
- import java.sql.SQLException;
-
- public class StaticConnectionFactory {
-
- public static Connection getConnection(){
- Connection connection = null;
- try {
- Class.forName("com.mysql.jdbc.Driver");
- connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/db_nacos","root","123456");
- } catch (ClassNotFoundException e) {
- e.printStackTrace();
- } catch (SQLException e) {
- e.printStackTrace();
- } finally {
- }
- return connection;
- }
-
- }
然后applicationContext.xml文件中添加如下内容
- <bean id="connection" class="factoryBean.StaticConnectionFactory" factory-method="getConnection">bean>
然后编写测试类
- @Test
- public void test4(){
- ApplicationContext ctx = new ClassPathXmlApplicationContext("/applicationContext.xml");
- Connection connection = (Connection) ctx.getBean("connection");
- System.out.println(connection);
- }
运行即可。
以上就是spring创建bean的三种方式,供大家参考