小言_互联网的博客

spring创建bean的三种方式

272人阅读  评论(0)

几乎每个后端程序员在实际工作中或学习中都会用到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. <!--spring创建静态工厂-->
  2. <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的三种方式,供大家参考


转载:https://blog.csdn.net/qq_24972061/article/details/128139060
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场