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+。
 
例:

 

posted @ 2017-12-25 10:07  .来自北方的狼  阅读(205)  评论(0编辑  收藏  举报