• 基于Annotation(注解)的装配


    一、常用注解

    1.@Component

    是一种通用注解,可用于任何Bean

    2.@Repository

    通常用于注解DAO层类,即持久层

    3.@Service

    通常用于注解Service类,即服务层

    4.@Controller

    通常用于Controller类,即控制层(MVC)

    5.@Autowired

    用于注解Bean的属性变量、属性的set()方法和构造函数,默认按照Bean的类型进行装配

    默认情况下,找不到合适的Bean会导致autowired失败抛出异常,可通过设置@Autowired的required属性为false避免,每个类只能有一个构造器被标记为required=true。

    可以通过添加注解给需要某种类型的数组的字段或方法,以提供ApplicationContext中所有该类型的Bean,让数组中的元素有序可通过@Order注解,也可以用于装配key为String的Map。

    6.@Resource

    作用与@Autowired一样,区别在于默认按照Bean的实例名称进行装配

    二、类的自动检测和Bean的注册

    1.配置applicationContext

    对特定包(com.yh)中的所有类进行组件扫描,将含有Spring注解的类注册Bean。

    <?xml version="1.0" encoding="UTF-8"?>
    <beans
        xmlns="http://www.springframework.org/schema/beans"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xmlns:p="http://www.springframework.org/schema/p"
        xmlns:context="http://www.springframework.org/schema/context"
        xsi:schemaLocation="http://www.springframework.org/schema/beans
         http://www.springframework.org/schema/beans/spring-beans-4.1.xsd
         http://www.springframework.org/schema/context
         http://www.springframework.org/schema/context/spring-context-4.1.xsd">
        
        <context:component-scan base-package="com.yh"></context:component-scan>
    
    </beans>

    <context:component-scan>包含<context:annotation-config>,通常使用前者后不再使用后者。

    在扫描并注册类时,,可以使用过滤器来进行自定义扫描

    2.定义Bean

    扫描过程中组件被自动检测,Bean名称是由BeanNameGenerator生成的,注解都有一个name属性用于显示设置Bean的名称。

    默认命名策略:将类名的首字母小写作为Bean的名称。

    也可以自定义命名策略,实现BeanNameGenerator接口,并一定要包含一个无参构造器。

    <context:component-scan base-package="com.yh" name-generator="com.yh.MyNameGenerator">
    </context:component-scan>

    三、Bean的作用域

    通过@Scope注解设置,主要取值有:

    singleton(单例模式)、prototype(原型模式)、request(每次HTTP请求,使用request定义的Bean都产生新实例,web应用生效)、session(每次HTTP Session,使用session定义的Bean都产生新实例,web应用生效)、globalsession(每个全局的HTTP Session,使用session定义的Bean都产生新实例,web应用生效)

  • 相关阅读:
    Xcode下 gdb 调试命令
    Xcode 获取本地IP
    Linux终端提示符PS1设置(颜色)
    linux 客户端 Socket 非阻塞connect编程
    关于SIGPIPE导致的程序退出
    jQuery MiniUI开发系列之:数据验证
    支持Java Spring MVC
    支持ASP.NET MVC
    支持ASP.NET WebService
    jQuery MiniUI开发系列之:Ajax处理超时、服务端错误
  • 原文地址:https://www.cnblogs.com/YeHuan/p/11097023.html
Copyright © 2020-2023  润新知