spring学习三

1: Spring的IOC容器:

IOC容器为管理对象之间的依赖关系提供了基础功能。

A:BeanFactory:

B:ApplicationContext(继承自BeanFactory,功能更多):

有3个实现类:

     ClassPathXmlApplicationContext :  classpath是指 WEB-INF文件夹下的classes目录 。

     FileSystemXmlApplicationContext: 用绝对路径找,不推荐。

     XmlWebApplicationContext :    专为web设计的 。

2: 四种依赖注入:

(1) 设置注入(setter):

(2) 构造方法注入:

          (3)  接口注入:

    (4)  工厂方法注入:

前两种用的多。

3: forName( )  Vs   getClass

java.lang.Class代表java应用程序在运行时加载的类或接口实例,Class类的对象是由JVM生成。

Object的getClass() 方法可以获取对象的class对象,然后通过class对象可以获取类的信息。

Class<?> aa = Class.forName("Integer");   // 通过类的字符串得到类

        Integer in = new Integer();
              Class<? extends Integer> bb = in.getClass();  // 通过对象得到类信息。

有的时候由一个名称来获得类,这个时候可以用forName() 来动态的加载类。

4:   getDeclaredMethod()    VS   getMethod()

  getDeclaredMethod*()获取的是类自身声明的所有方法,包含public、protected和private方法。

  getMethod*()获取的是类的所有共有方法,这就包括自身的所有public方法,和从基类继承的、从接口实现的所有public方法。

5:   获得类中成员变量和成员函数的方法:

  获得类中成员的函数:

Field getField(String name)            // public 成员

Field[] getFields()                             // public 成员

Field getField(String name)           // all 成员

Field[] getDeclaredFields()            // all 成员

    获得类的函数的方法:

  Method getMethod(String name, Class[] paramTypes)   //根据方法名和参数来获得

  Method[]  getMethod():   获得类中所有公共方法。

    Method getDeclaredMethod(String name, Class[] paramTypes)  //   不包括从父类继承的方法。

     Method[] getDeclaredMethod()             不包括父类继承的方法。

6:  Spring 集合注入:

list  /  map  /  set /  properties

7:  parent 用处:

parent 用处: 继承,父类中已经注入的属性,不需重复注入。
<alias name="tskdefaultWsAuthenticationProvider" alias="wsAuthenticationProvider" />
    <bean id="tskdefaultWsAuthenticationProvider"
          class="com.fivestar.tsk.service.TSKCoreAuthenticationProvider"  parent = "defaultWsAuthenticationProvider">
    </bean>

8: bean的ID是否有可能重复?

是的,可以重复,重复的话会有覆盖的行为。

9: parent:   父亲中已经注入的属性不需要再重复注入;

merge = true:   表示集合和父集合的合并

<bean id="carouselProductConverter" parent="defaultProductConverter">
        <property name="populators">
            <list merge="true">
                <ref bean="productPricePopulator"/>
            </list>
        </property>
</bean>

10: 集合中的元素可以是其他的bean

 <bean id="fsProductModel2FSProductDataConverter" parent="logExecutionTimeConverter">
        <property name="targetClass" value="com.fivestar.tsk.product.data.FSProductData" />
        <property name="populators">
            <list>
                <ref bean="fsProductBasicPopulator" />
                <ref bean="fsProductPublishInfoPopulator" />
                <ref bean="fsProductDisplayAttributePopulator" />
                <ref bean="fsProductSalesAttributePopulator" />
                <ref bean="fsProductPromotionPopulator" />
                <ref bean="fsExtendWarrantProductPopulator" />
            </list>
        </property>
    </bean>

11:  abstract="true" 表示不用实例化(目的是让子类的bean继承)

<bean id="logExecutionTimeConverter"

class="com.fivestar.tsk.facades.converters.LogExecutionTimeConverter"

abstract="true" />

时间: 2024-10-23 14:42:35

spring学习三的相关文章

spring学习(三) ———— spring事务操作

前面一篇博文讲解了什么是AOP.学会了写AOP的实现,但是并没有实际运用起来,这一篇博文就算是对AOP技术应用的进阶把,重点是事务的处理. --wh 一.jdbcTemplate 什么是JdbcTemplate? spring提供用于操作数据库模版,类似Dbutils,通俗点讲,我们操作数据库,spring也会帮我们提供一个操作数据库的工具供我们使用,而不用我们自己手动编写连接数据库,获取结果集等等操作,这个工具就是JdbcTemplate.跟Dbutils一样,想要使用JdbcTemplate

Spring学习(三)

今天学习的是Spring中一个bean引用另一个bean,需要更改的只是xml配置文件中的代码,具体代码如下: 实体类User: public class User { private String name; private UserService userService; public String getName() { return name; } public void setName(String name) { this.name = name; } public UserServ

Spring学习三、Spring配置与DI依赖注入

五.Spring配置 5.1别名 <!-- 别名--> <alias name="user" alias="user2"/> 5.2 Bean的配置 <!-- id : bean的唯一标识符,相当于对象名 class : 全限定名 包名 + 类名 name : 也是别名,name可以同时起多个别名 --> <bean id="userT" class="cn.imut.pojo.User&quo

spring学习 三 框架的搭建

1 导入jar包 spring启来最少要5个包,四个核心包和一个依赖的日志包 2 创建配置文件 在dynamic web project下的src目录下,创建一个spring的xml配置文件,名称可以任意,但是一般建议命名为applicationContext.xml.  applicationContext.xml配置文件是基于she ma约束的. shema约束与DTD约束一样,都是xml语法检查器. 在老版本的spring中,采用的spring容器接口是BeanFactory,  在新的版

Spring学习笔记(三)

Spring学习笔记(三) AOP 一.使用Annotation方式实现AOP.步骤: xml里加入配置:<aop:aspectj-autoproxy /> <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org

Spring学习系列之——第三章:Spring中Bean的配置(一)

Spring的配置形式有两种:基于XML配置和基于注解配置. Bean的配置方式有以下几种: 通过全类名,即通过反射的方式: 通过工厂方法,有静态工厂方法和实例工厂方法: 通过FactoryBean配置: 通过XML文件配置bean 本篇文章将按照下面的目录来说明基于XML的方式配置bean JavaBean的创建 通过XML配置的方式来配置bean XMLbean的配置: spring的依赖注入的方式 属性注入 构造器注入 工厂方法注入(很少使用) 测试方法 IoC容器的实例化: Applic

不错的Spring学习笔记(转)

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

Spring学习(一)tomcat加载web.xml、以及项目集成Spring支持

tomcat容器加载web.xml 一. 1 .启动一个 WEB 项目的时候, WEB 容器会去读取它的配置文件 web.xml ,读取 <listener> 和 <context-param> 两个结点. 2 .紧急着,容创建一个 ServletContext ( servlet 上下文),这个 web 项目的所有部分都将共享这个上下文. 3 .容器将 <context-param> 转换为键值对,并交给 servletContext . 4 .容器创建 <li

Spring学习之Ioc控制反转(1)

开始之前: 1. 本博文为原创,转载请注明出处 2. 作者非计算机科班出身,如有错误,请多指正 ---------------------------------------------------------------------------开始啦啦啦啦啦------------------------------------------------------------------------------- 从开始接触spring起,听到最多的就是Ioc(控制反转)和AOP(面向切面编程