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>
  • 相关阅读:
    day14(xml 编写及解析)
    day11(多线程,唤醒机制,生产消费者模式,多线程的生命周期)
    day13(反射,BeanUtils包)
    day10(IO流汇总)
    day08(File类 ,字节流)
    day08(异常处理,创建异常,finally,throws和throw的区别)
    [SPOJ-PT07J] Query on tree III (主席树)
    [ZJOI2008] 树的统计(树链剖分)
    长链剖分学习笔记
    [BZOJ4260] Codechef REBXOR (01字典树,异或前缀和)
  • 原文地址:https://www.cnblogs.com/xsl1995/p/10163781.html
Copyright © 2011-2022 走看看