======== 实例工厂 ======== 既然可以通过FactoryBean创建复杂对象,为什么还需要实例工厂? - 我们的代码必须实现FactoryBean接口,这实际上一种来自Spring框架侵入 - 在现有的遗留系统中已有这样的类 public class ConnectionFactory { public Connection getObject() { ... return conn; } } 但它并不是FactoryBean接口的实现类,且存在于以.class文件而非.java文件中 /src/main/java/cn/tedu/injection/ConnectionFactory.java: public class ConnectionFactory { public Connection getConnection() { Connection conn = null; try { Class.forName("com.mysql.jdbc.Driver"); conn = DriverManager.getConnection( "jdbc:mysql://localhost:3306/springdb?useSSL=false", "root", "123456"); } catch (ClassNotFoundException | SQLException e) { e.printStackTrace(); } return conn; } } /src/main/resources/applicationContext.xml: _________________________________________ | v ^___________________ |_______ | v ^|______________________^ | __________| _________________________________________________| | v | Connection conn = applicationContext.getBean( | "conn", Connection.class); |________| 例程:Injection