zoukankan      html  css  js  c++  java
  • spring学习六

    1: @Valid 注解      

        @NotNull(message="名字不能为空")

                      private String userName;

                    @Max(value=120,message="年龄最大不能查过120")

                      private int age;

                    @Email(message="邮箱格式错误")

                      private String email;

    2: Spring MVC 处理静态资源:      

      所有以 /resource开头的请求,都会自动由 /resources目录提供目录。 所有的图片,样式表,javaScript.

               <mvc: resources mapping=“/resources/**”   location=“/resources/” />

      3:    WEB容器在启动时,它会为每个WEB应用程序都创建一个对应的ServletContext对象(每个web应用程序唯一),它代表当前web应用web容器提供其一个全局的上下文环境,其为后面的spring IoC容器提供宿主环境;

       读取/WEB-INF/[servlet名字]-servlet.xml文件,初始化自己持有的上下文。初始化完毕后,spring也将dispatcherservlet的上下文存到ServletContext中。

      spring MVC 默认会从这个 servlet名字命名的XML中加载spring MVC的上下文。

    4:  DefaultAnnotationHandlerMapping:   将请求映射给使用 @RequestMapping注解的控制器和方法。

         如果用  <mvc: annotation-driven>, 就可以不写DefaultAnnotationHandlerMapping,这个标签功能强大。

         此外还有 SimpleUrlHandlerMapping(通过bean name进行URL映射)   BeanNameUrlHandlerMapping

    5:  <context:componet-scan>

            查找使用@Component注解的类并将其注册为bean, @controller注解:  是@Component注解的一种具体化。
      <context:component-scan   base-package=“XXXX.XXX.”
    6:Spring框架好处

    • 轻量:Spring 是轻量的,基本的版本大约2MB。
    • 控制反转:Spring通过控制反转实现了松散耦合,对象们给出它们的依赖,而不是创建或查找依赖的对象们。
    • 面向切面的编程(AOP)Spring支持面向切面的编程,并且把应用业务逻辑和系统服务分开。
    • 容器:Spring 包含并管理应用中对象的生命周期和配置。
    • MVC框架:Spring的WEB框架是个精心设计的框架,是Web框架的一个很好的替代品。
    • 事务管理:Spring 提供一个持续的事务管理接口,可以扩展到上至本地事务下至全局事务(JTA)。
    • 异常处理:Spring 提供方便的API把具体技术相关的异常(比如由JDBC,Hibernate or JDO抛出的)转化为一致的unchecked 异常

    7: BeanFactory 实现举例

            Bean 工厂是工厂模式的一个实现,提供了控制反转功能,用来把应用的配置和依赖从正真的应用代码中分离。最常用的BeanFactory 实现是XmlBeanFactory 类。

            最常用的就是org.springframework.beans.factory.xml.XmlBeanFactory ,它根据XML文件中的定义加载beans。该容器从XML 文件读取配置元数据并用它去创建一个完全配置的系统或应用。

    8. 哪种依赖注入方式你建议使用,构造器注入,还是 Setter方法注入?

          你两种依赖方式都可以使用,构造器注入和Setter方法注入。

          最好的解决方案是用构造器参数实现强制依赖,setter方法实现可选依赖。

    9:如何定义bean的作用域

          scope

    10:  Spring框架中的单例bean是线程安全的吗?

      Spring框架中的单例bean不是线程安全的。

    11:  什么是Spring的内部bean?

      当一个bean仅被用作另一个bean的属性时,它能被声明为一个内部bean,为了定义inner bean,在Spring 的 基于XML的 配置元数据中,可以在 <property/>或 <constructor-arg/> 元素内使用<bean/> 元素,内部bean通常是匿名的,它们的Scope一般是prototype。

    12: 在 Spring中如何注入一个java集合?

    Spring提供以下几种集合的配置元素:

    • <list>类型用于注入一列值,允许有相同的值。
    • <set> 类型用于注入一组值,不允许有相同的值。
    • <map> 类型用于注入一组键值对,键和值都可以为任意类型。
    • <props>类型用于注入一组键值对,键和值都只能为String类型。

    13. 解释不同方式的自动装配 

      有五种自动装配的方式,可以用来指导Spring容器用自动装配方式来进行依赖注入。

    • no:默认的方式是不进行自动装配,通过显式设置ref 属性来进行装配。
    • byName通过参数名 自动装配,Spring容器在配置文件中发现bean的autowire属性被设置成byname,之后容器试图匹配、装配和该bean的属性具有相同名字的bean。
    • byType:通过参数类型自动装配,Spring容器在配置文件中发现bean的autowire属性被设置成byType,之后容器试图匹配、装配和该bean的属性具有相同类型的bean。如果有多个bean符合条件,则抛出错误。
    • constructor:这个方式类似于byType, 但是要提供给构造器参数,如果没有确定的带参数的构造器参数类型,将会抛出异常。
    • autodetect首先尝试使用constructor来自动装配,如果无法工作,则使用byType方式。

    14:  Spring中可以注入null或空字符串

          可以

    15: 如何开启注解装配

             <context:annotation-config/>

    16:@Required  注解

              这个注解表明bean的属性必须在配置的时候设置,通过一个bean定义的显式的属性值或通过自动装配,若@Required注解的bean属性未被设置,容器将抛出BeanInitializationException。

    17: @Autowired 注解

              @Autowired 注解提供了更细粒度的控制,包括在何处以及如何完成自动装配。它的用法和@Required一样,修饰setter方法、构造器、属性或者具有任意名称和/或多个参数的PN方法。

    18: @Qualifier 注解

      当有多个相同类型的bean却只有一个需要自动装配时,将@Qualifier 注解和@Autowire 注解结合使用以消除这种混淆,指定需要装配的确切的bean。 

    19: DispatcherServlet

      Spring的MVC框架是围绕DispatcherServlet来设计的,它用来处理所有的HTTP请求和响应。

    20:@RequestMapping 注解

      该注解是用来映射一个URL到一个类或一个特定的方处理法上。

  • 相关阅读:
    数组的基本操作
    面向对象
    继承
    JavaBean规范
    JVM内存模型
    数组的排序
    this
    访问控制权限
    数组
    方法的重载
  • 原文地址:https://www.cnblogs.com/liufei1983/p/7577409.html
Copyright © 2011-2022 走看看