zoukankan      html  css  js  c++  java
  • SpringMVC学习指南【笔记1】创建bean实例的方法和依赖注入

    Spring MVC 主要从Spring框架、ServletJSP3个方面来讲。

    Java企业版技术包括JMSEJBJSFJPA

    Java企业版容器:GlassFishJBossOracleWeblogicIBM WebSphere

    TomcatJetty不是企业版容器,所以不能运行EJBJMS

    Spring一共有20多个不同的模块,这里主要讲了3个模块:corebeanspringmvc

    corebean提供依赖注入解决方案。

    Spring有两种配置方式:xml和注解的方式。这两种方式都至少需要一个包含beans信息的xml文件。

    【控制反转】

    ApplicationContext代表Spring控制反转容器,有两个实现类:

    ClassPathXmlApplicationContext在类加载路径中加载配置文件;

    FileSystemXmlApplicationContext在文件系统中加载。

    例如:

    ApplicationContext context = new ClassPathXmlApplicationContext(new string[]{“config1.xml”,”config2.xml”});
    
    Product product = context.getBean(“product”,Product.class);

    创建bean实例的方法:

    1、通过构造器创建一个bean实例;

    <bean name=”product” class=”com.xsl.entity.Product” />

    2、通过工厂方法创建一个bean实例。

    <bean id=”calendar” class=”java.util.Calendar” factory-method=”getInstance” />

    Destroy Method的使用:可以在类被销毁之前能执行指定方法。

    <bean id=”executorService” class=”java.util.concurrent.Executosr” factory-method=”new CachedTheadPool” destory-method=”shutdown” />

    通过指定的class的这个静态方法new CachedTheadPool,创建idexecutorService的实例,最后在销毁之前调用shutdown方法。

    Spring也支持通过构造器来传递参数:

    1、写好实体类的构造方法;

    2、bean中配置好参数的值。(参数的标签是< constructor-arg />,除了可以通过名称name来传递参数外,还支持通过索引index来传递参数;但是采用索引来传递参数的话,所有参数都必须传递,缺一不可)

    A类依赖B类,为保证每个A实例都能包含B实例。

    <bean name=”b1” class=”com.xsl.entity.B”>
    
        <constructor-arg name=”city” value=”shenzhen” />
    
        <constructor-arg name=”state” value=”yes” />
    
    </bean>

    1、setter方式依赖注入(使用<property />标签)

    <bean name=”a” class=”com.xsl.entity.A”>
    
        <property name=”b” ref=”b1” />
    
        <property name=”price” value=”9.9” />
    
    </bean>

    2、构造器方式依赖注入

    <bean name=”a” class=”com.xsl.entity.A”>
    
        <constructor-arg name=”b” ref=”b1” />
    
        <constructor-arg name=”price” value=”9.9” />
    
    </bean>
  • 相关阅读:
    PHP导出sql文件
    BugScan插件编写高(gǎo)级(jī)教程
    php父级目录文件包函问题
    检测web服务器指定位置大文件是否存在
    解决Linux关闭SSH,终端后运行程序终止问题(包括后台)
    Python Matplotlib绘图库 安装
    校园网突围之路由器开wifi__windows版
    [openwrt 项目开发笔记]: 传送门
    [Openwrt 项目开发笔记]:PHP+Nginx安装(七)
    [Openwrt 项目开发笔记]:MySQL配置(六)
  • 原文地址:https://www.cnblogs.com/xsl1995/p/10163781.html
Copyright © 2011-2022 走看看