• spring创建bean的三种方式


    几乎每个后端程序员在实际工作中或学习中都会用到spring,spring为我们创建了对象,摒弃了直接在代码中new一个对象的方法,其最大的特点就是:解耦合,可以说解耦合也是spring的一大特点。下面我们介绍spring创建bean的三种形式:

    其中创建项目及新建类的过程省略,只保留主要文件。

    第一种:通过构造函数来创建对象

    首先新建一个person类,很简单的一个person类,只有set和get方法

    1. package org.example;
    2. public class Person {
    3. private String name;
    4. private String age;
    5. public String getName() {
    6. return name;
    7. }
    8. public void setName(String name) {
    9. this.name = name;
    10. }
    11. @Override
    12. public String toString() {
    13. return "Person{" +
    14. "name='" + name + '\'' +
    15. ", age='" + age + '\'' +
    16. '}';
    17. }
    18. public String getAge() {
    19. return age;
    20. }
    21. public void setAge(String age) {
    22. this.age = age;
    23. }
    24. }

    然后新建applicationContext.xml文档

    <bean id = "person" class="org.example.Person">

    最后再新建一个test类,可以用自带的

    1. @Test
    2. public void test2(){
    3. ApplicationContext ctx = new ClassPathXmlApplicationContext("/applicationContext.xml");
    4. //1
    5. Person person = (Person)ctx.getBean("person");
    6. //2
    7. Person person1 = ctx.getBean("person",Person.class);
    8. //3
    9. Person person2 = ctx.getBean(Person.class);
    10. System.out.println(person);
    11. System.out.println(person1);
    12. System.out.println(person2);
    13. }

    其中1,2,3分别代表三种获取bean对象的形式,执行该test类,这是第一种方法。

    第二种方式:通过实例工厂

    首先创建一个类ConnectionFactory。

    1. package factoryBean;
    2. import java.sql.Connection;
    3. import java.sql.DriverManager;
    4. import java.sql.SQLException;
    5. public class ConnectionFactory {
    6. public Connection getConnection(){
    7. Connection connection = null;
    8. try {
    9. Class.forName("com.mysql.jdbc.Driver");
    10. connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/db_nacos?useSSL=false","root","123456");
    11. } catch (ClassNotFoundException e) {
    12. e.printStackTrace();
    13. } catch (SQLException e) {
    14. e.printStackTrace();
    15. }
    16. return connection;
    17. }
    18. }

    然后applicationContext.xml中添加如下内容

    1. <bean name="connectionFactory" class="factoryBean.ConnectionFactory"/>
    2. <bean name="conn" factory-bean="connectionFactory" factory-method="getConnection"/>

    然后再编写测试类

    1. @Test
    2. public void test3(){
    3. ApplicationContext ctx = new ClassPathXmlApplicationContext("/applicationContext.xml");
    4. Connection conn = (Connection) ctx.getBean("conn");
    5. System.out.println(conn);
    6. }

    直接运行结果即可,这是第二种创建实例工厂

    第三种:创建静态工厂

    首先创建类StaticConnectionFactory

    1. package factoryBean;
    2. import java.sql.Connection;
    3. import java.sql.DriverManager;
    4. import java.sql.SQLException;
    5. public class StaticConnectionFactory {
    6. public static Connection getConnection(){
    7. Connection connection = null;
    8. try {
    9. Class.forName("com.mysql.jdbc.Driver");
    10. connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/db_nacos","root","123456");
    11. } catch (ClassNotFoundException e) {
    12. e.printStackTrace();
    13. } catch (SQLException e) {
    14. e.printStackTrace();
    15. } finally {
    16. }
    17. return connection;
    18. }
    19. }

    然后applicationContext.xml文件中添加如下内容

    1. <bean id="connection" class="factoryBean.StaticConnectionFactory" factory-method="getConnection">bean>

    然后编写测试类

    1. @Test
    2. public void test4(){
    3. ApplicationContext ctx = new ClassPathXmlApplicationContext("/applicationContext.xml");
    4. Connection connection = (Connection) ctx.getBean("connection");
    5. System.out.println(connection);
    6. }

    运行即可。

    以上就是spring创建bean的三种方式,供大家参考

  • 相关阅读:
    字符串反转
    一款轻量级事件驱动型应用程序框架
    前端自动化构建-Gulp实现前端插件开发
    5.0 CRC32校验技术概述
    Spring整合其他组件
    【智能家居项目】裸机版本——认识esp8266 | 网络子系统
    机器学习笔记之变分推断(五)重参数化技巧
    TVS管和ESD管的技术指标和选型指南-嘉立创推荐
    Vuex
    Flutter混编之路IOS插件0基础开发(mac环境)
  • 原文地址:https://blog.csdn.net/qq_24972061/article/details/128139060