spring学习笔记(5)装配Bean 实例工厂 【资源来自网络 版权非本人】

实例工厂:必须现有工厂的实例对象,通过实例对象创建对象。所有的方法都是非静态的(这一点和静态工厂有区别)

(直接看代码)

  工厂(和静态工厂的区别就是非静态 其他都一样)

package c_inject.c_factory;
/*
 * 实例工厂
 */
public class MyBeanFactory {
 public  UserService createService(){
    return new UserserviceImpl();
 }
}

  配置(配置和静态的有点区别  仔细看看吧 )

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
                              http://www.springframework.org/schema/beans/spring-beans.xsd">

      <!--  创建工厂实例 -->
      <bean id="MyBeanFactoryId" class="c_inject.c_factory.MyBeanFactory">
      <!-- 获取userService
      factory-bean :确定工厂实例
      factory-method : 确定工厂中的方法
      -->
      <bean id="userServiceId" factory-bean="MyBeanFactoryId" factory-method="createService"></bean>
</beans>

   测试类 (静态自定义和实例自定义的区别大一点  当用spring的时候完全一样)

package c_inject.c_factory;

import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import a.ioc.Uservice;

public class TestStaticFactory {

    @Test
    /*
     * 自定义实例工厂
     */
    public void demo01(){
        //自定义实例工厂
        //1.创建工厂
        MyBeanFactory factory=new MyBeanFactory();
        //通过工厂获取对象
        UserService uservice= factory.createService();
        uservice.addUser();
        };

    @Test
    /*
     * spring 的工厂
     */
    public void demo02(){
        ApplicationContext application =new ClassPathXmlApplicationContext("c_inject/c_factory/beans.xml");
        UserService userService = (UserService) application.getBean("userServiceId");
        userService.addUser();

    };

    }
    

原文地址:https://www.cnblogs.com/zhbx/p/8228318.html

时间: 2024-10-13 05:40:28

spring学习笔记(5)装配Bean 实例工厂 【资源来自网络 版权非本人】的相关文章

spring学习笔记(6)装配Bean 的种类和区别 【资源来自网络 版权非本人】

Bean的种类 1.普通Bean:之前操作的都是普通bean <bean  id="" class="A"> Spring 就直接创建A 然后返回 2.FactoryBean:是一个特殊的Bean,具有工厂生产对象的能力,但是只能生产特定的对象 bean必须实现Factorybean的接口,此接口提供一个getObject()来获得特定的bean. <bean id="" calss="Factorybean"

Spring学习笔记二(Bean注入的几种方式)

1.前言 上一篇博客从宏观上讲解了一下Spring的知识,下面这篇来着重讲解一下有关Bean注入的几种方式. 2.Bean注入的几种方式 2.1 类构造器初始化 这也是默认的方式,在上一篇博客中也有所体现.直接在applicationContext.xml配置文件中,配置Bean标签即可 <span style="font-family:SimSun;font-size:18px;"><!-- 实例工厂初始化 --> <!-- 必须先创建实例工厂对应的Be

Spring学习总结之装配bean

1.  XML中显式配置 规范,文件头: <?xml version="1.0" encoding="UTF-8"?>            <beans xmlns=http://www.springframework.org/schema/beans                     xmlns=http://www.w3.org/2001/XMLSchema-instance                     xsi:schema

Spring学习总结之---装配Bean

Spring配置的可选方案 前言:Spring容器负责创建应用程序中的bean并通过DI来协调这些对象之间的关系,作为开发人员,你需要告诉Spring容器要创建那些Bean,以哪种方式创建,并且如何将这些bean装配在一起. 1.装配方式可选方案: 1-1:在XML中进行显示配置:在java中进行显示配置:隐式的bean发现机制和自动装配:可以使用互相搭配使用.备注:建议使用自动装配方式. 2.自动化装配:组件扫描(Spring会自动对发现组件类进行扫描并创建上下文bean):自动装配(Spri

Spring学习笔记——Sprin管理Bean的原理

当我们使用Spring时候在Xml文件中通过 <bean id="service" class="com.finance.service.AmountServiceImpl" /> 配置就可以操作该Bean的属性和方法,那么Spring到底是如何实现的呢?下面让我们自己实现这个过程. 首先我模拟Spring的命名方式创建一个Bean管理类MyClassPathXMLApplicationContext.java,代码如下: // 自定义容器 public

【Spring】Spring学习笔记-01-入门级 实例

</pre><p></p><p><span style="font-size:18px">听说当前Spring框架非常流行,我也准备好好学学Spring开发,并将学习的过程和大家分享,希望能对志同道合的同学有所帮助.</span></p><p><span style="font-size:18px">下面是一个学习Spring的第一个例子.</span&

spring学习笔记(19)mysql读写分离后端AOP控制实例

在这里,我们接上一篇文章,利用JNDI访问应用服务器配置的两个数据源来模拟同时操作不同的数据库如同时操作mysql和oracle等.实际上,上个例子可能用来模拟mysql数据库主从配置读写分离更贴切些.既然如此,在本例中,我们就完成读写分离的模拟在web端的配置实例. 续上次的例子,关于JNDI数据源的配置和spring datasource的配置这里不再重复.下面着重加入AOP实现DAO层动态分库调用.可先看上篇文章<spring学习笔记(18)使用JNDI模拟访问应用服务器多数据源实例 >

不错的Spring学习笔记(转)

Spring学习笔记(1)----简单的实例 ---------------------------------   首先需要准备Spring包,可从官方网站上下载.   下载解压后,必须的两个包是spring.jar和commons-logging.jar.此外为了便于测试加入了JUnit包.   在Myeclipse中创建Java项目.   编写一个接口类,为了简单,只加入了一个方法.   Java代码   1.package com.szy.spring.interfacebean;  

【Spring学习笔记-MVC-9】SpringMVC数据格式化之日期转换@DateTimeFormat

作者:ssslinppp       1. 摘要 本文主要讲解Spring mvc数据格式化的具体步骤: 并讲解前台日期格式如何转换为java对象: 在之前的文章<[Spring学习笔记-MVC-8]SpringMVC之类型转换Converter>(对应链接: http://www.cnblogs.com/ssslinppp/p/4598102.html ) 中讲解了Spring MVC的类型转换,在此回顾下. 数据格式化,从本质上讲属于数据转换的范畴.Spring就是基于数据转换框架植入&q