`
Ydoing
  • 浏览: 101053 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Spring的几种注入方式

 
阅读更多

通过set方式注入

bean的定义:

package com.ydoing.demo;
public class Person {
    private Computer computer;
    public void setComputer(Computer computer) {
        this.computer = computer;
    }
    public void useComputer() {
        computer.start();
    }
} 

bean的配置:

    <bean id="person" class="com.ydoing.demo.Person">
        <property name="computer" ref="computer" />
    </bean> 

通过构造器注入

注入基本类型

bean的定义:

package com.ydoing.demo;
public class CPU {
    private String name;
    public CPU(String name) {
        this.name = name;
    }
    public String getName() {
        return name;
    }
}

bean的配置:

    <bean id="cpu" class="com.ydoing.demo.CPU">
        <constructor-arg value="Intel"/>
    </bean> 

注入对象引用

package com.ydoing.demo;
public class Computer {
    private String name;
    private CPU cpu;
    public Computer(String name, CPU cpu) {
        this.name = name;
        this.cpu = cpu;
    }
    public void start() {
        System.out.println(name + "computer run");
        System.out.println("CPU name is: " + cpu.getName());
    }
} 

bean的配置

    <bean id="computer" class="com.ydoing.demo.Computer">
        <constructor-arg value="Del"/>
        <constructor-arg ref="cpu"/>
    </bean> 

通过工厂方法

适合私有构造器以及没有set方法的bean。

package com.ydoing.demo;
public class Singleton {
    private Singleton() {
    }
    private static class SingletonHolder {
        static final Singleton instance = new Singleton();
    }
    public static final Singleton getInstance() {
        return SingletonHolder.instance;
    }
}

bean的配置

    <bean id="singleton" class="com.ydoing.demo.Singleton" factory-method="getInstance"/> 

装配集合

list

        <property name="memorys">
            <list>
                <ref bean="Kingston" />
                <ref bean="Apacer" />
            </list>
        </property> 

或者

        <property name="memorys">
            <list>
                <value>1</value>
                <value>2</value>
            </list>
        </property> 

set

        <property name="memorys">
            <set>
                <ref bean="Kingston" />
                <ref bean="Apacer" />
            </set>
        </property> 

map

        <property name="memorys">
            <map>
                <entry key="key1" value="11"/>
                <entry key="key2" value="22"/>
            </map>
        </property> 

或者

        <property name="memorys">
            <map>
                <entry key-ref="key1" value-ref="bean1"/>
                <entry key-ref="key2" value-ref="bean2"/>
            </map>
        </property> 

props

props的key和value必须是String类型。

        <property name="memorys">
            <props>
                <key>OK</key>
                <key>No</key>
            </props>
        </property> 
<script type="text/javascript"> $(function () { $('pre.prettyprint code').each(function () { var lines = $(this).text().split('\n').length; var $numbering = $('<ul/>').addClass('pre-numbering').hide(); $(this).addClass('has-numbering').parent().append($numbering); for (i = 1; i <= lines; i++) { $numbering.append($('<li/>').text(i)); }; $numbering.fadeIn(1700); }); }); </script>

版权声明:本文为博主原创文章,未经博主允许不得转载。

分享到:
评论

相关推荐

    node-v18.18.2-headers.tar.xz

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。

    node-v7.7.3-headers.tar.xz

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。

    使用C#,生成特定格式Word文档

    Word文档的自动化生成,可以根据数据自动形成文档

    JavaScript_简单的动画为您的顺风项目.zip

    JavaScript

    node-v10.10.0-headers.tar.gz

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。

    UE 剔除透视材质-材质函数(可编辑)

    在虚幻引擎中,当我们向透过外壳看到内部的材质,或者透过布料/盔甲等看到人体,即可通过将该材质函数连接到相应的材质节点图中,达到这样的效果。

    node-v16.17.1-headers.tar.xz

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。

    node-v17.3.0-headers.tar.xz

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。

    营销计划汇报PPT,市场品牌 推广渠道 产品 营销策略tbb.pptx

    营销计划汇报PPT,市场品牌 推广渠道 产品 营销策略tbb.pptx

    eclipse安装教程.rar

    eclipse安装

    prometheus一键部署文档,只需要执行install命令安装prometheus+alertmanager+grafana

    prometheus一键部署文档,只需要执行install命令安装prometheus+alertmanager+grafana

    JavaScript_暴露自己.zip

    JavaScript

    JavaScript_基于Electron和Vuejs的全新跨平台Apple Music体验,从头开始编写,并考虑到性能.zip

    JavaScript

    【计算机毕业设计】基于java web开发框架的RoubSite系统源码.zip

    【计算机毕业设计】基于java web开发框架的RoubSite系统源码.zip

    batik-gvt-1.7.jar

    Batik是为想使用svg格式图片来实现各种功能的应用程序和Applet提供的一个基于java的工具包

    JavaScript_无限画布数据的开放文件格式.zip

    JavaScript

    零食商城的微信小程序页面源码

    模板描述:零食商城 微信小程序。零食商城的微信小程序页面源码是使用微信WEB开发者工具开发,亲测可直接运行。该程序包含了详细完整的框架架构结构,从设计上满足了相关应用服务的设计要求,是一款非常值得学习简介的DEMO小程序源码。

    Java输出中序遍历二叉树的代码

    附件是Java输出中序遍历二叉树的代码,中序遍历的顺序是:首先递归地中序遍历左子树,然后访问根节点,最后递归地中序遍历右子树。 TreeNode 类定义了二叉树的节点,BinaryTree 类包含一个 root 属性和 inOrderTraversal 方法。inOrderTraversal 方法递归地遍历二叉树,首先遍历左子树,然后访问当前节点,最后遍历右子树。

    node-v9.3.0-headers.tar.gz

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。

    JavaScript_使用碎片工具,你可以恢复你的死域.zip

    JavaScript

Global site tag (gtag.js) - Google Analytics