zoukankan      html  css  js  c++  java
  • Spring 注解简用

    前置条件:

         项目架构:

          

    1、在Spring中,采用配置ApplicationContext.xml文件如下

         

          采用以上方式,是于配置文件的方式进行配置。项目同样可以正确运行,但随着项目工程的增加,ApplictionContext.xml文件会越来越来,项目维护会变的困难。故采用Spring 注解的方式进行配置。

    2、Spring注解

         在Spring中常用的注解声明(annotation)有以下几类:

    • @Component:标准一个普通的spring Bean类。
    • @Controller:标注一个控制器组件类。
    • @Service:标注一个业务逻辑组件类。
    • @Repository:标注一个DAO组件类。   
                   通常,上面四个注解在程序的执行上,都是一样的,但采用 @Controller,@Service,@Repository会携带更多语义。尽量考虑使用@Controller,@Service,@Repository代替通用的@Component。当然,如果所有程序中,都采用@Component注解,在程序执行上,是没有区别的。
                  注入方式:
          Step1:在类声明时,前面加上注解  @Component
                                      如:
                         Step2:在ApplictionContext.xml文件中,加入包扫描路径
                                             
     
                  注意:通过注解后的Bean实例的名称默认是Bean类的首字母小写,其他部分不变。
                例:           

    @Component
    public class Book implements java.io.Serializable {

    private String isbn;
    private String bookName;

    ......代码略

    }

    装入Spring容器后,等价于(类声明时,是Book,装处容器后bean实例是:book)

         <bean id="book" class="org.cs.model.Book"></bean>

     

     3、依赖注入属性  @Autowired使用。
     
           如果不采用@Autowired,依赖注入方式如下:
     
        

                        程序内部代码如下:

                                 

    采用@Autowired注入后:代码变为:

                         

               

                             类代码变为:

                            

         
     

        补充知识1:

             我们可以通过为<context:component-scan>添加<include-filter...>或<exclude-filter...>子元素来指定spring bean类,只要位于指定路径下的java类满足这种规则,即使这些java类没有使用任何annotation标注,spring一样会将他们当初bean类来处理。

    <include-filter...>:满足该规则的java类会被当初bean类处理。
    <exclude-filter...>:指定满足该规则的java类不会被当初bean类处理。
     
    这两个子元素有两个属性:
    type:指定过滤器类型。
    expression:指定过滤器所需要的表达式。
     
    spring内建支持如下四种过滤器:
    annotation:该过滤器要指定一个annotation名,如lee.AnnotationTest。
    assignable:类名过滤器,该过滤器直接指定一个java类。
    regex:正则表达式过滤器,该过滤器指定一个正则表达式,匹配该正则表达式的java类将满足该过滤规则,如org.example.default.*。
    aspectj:如org.example..*service+。
     
    例:
  • 相关阅读:
    linux之uniq
    shell之sort
    tr命令的使用
    AWK 简明教程
    Word Frequency
    10亿个数中选出最大的100个数
    代理模式(也称委托模式)
    java内存相关
    Two Sum
    Java的集合
  • 原文地址:https://www.cnblogs.com/peiyangjun/p/8108123.html
Copyright © 2011-2022 走看看