• Java 注解之总结


    注解是Spring和Mybatis框架所大量使用的技术,要想掌握框架相关技术,注解是必须要掌握的。

    掌握注解的优势:

      1.能够读懂别人写的代码,特别是框架相关的代码。

      2.本来可能需要很多配置文件,需要很多逻辑才能实现的内容,就可以使用一个或者多个注解来替代,这样就使得编程更加简洁,代码更加清晰。

      3.会自定义注解的话能够让人高看一眼。

      注解这一概念是在java1.5版本提出的,说Java提供了一种原程序中的元素关联任何信息和任何元数据的途径的方法。

    一、Java常见注解

      1、Java 自带注解    

        @Override //该注解作用就是告诉我们和编译器该注解下的方法覆盖了Person类的方法

        @Deprecated //测试方法是否过时

        @SuppressWarnings 就表示我们忽略警告。

          

      2、第三方注解

        2.1、Spring 注解

          

     1 1.1    装配Bean的相关注解
     2     @Component
     3         该注解配置在类上,可以将类装配到spring容器中,并且可以通过其属性value值id名称
     4     @Controller
     5         是@Component的衍生注解,使用web层上的,用法和@Component一致
     6     @Service
     7         是@Component的衍生注解,使用在service层上的,用法和@Component一致
     8     @Repository
     9         是@Component的衍生注解,使用在dao层上的,用法和@Component一致
    10     @Bean
    11         该注解配置在方法上,可以将方法的返回值装配到spring容器中,默认的id为方法名  称,可以通过其name属性指定id名称
    12 1.2    属性注入的相关注解
    13     @Value
    14         可以给基本类型和String类型注入属性值,并且可以使用占位符表达式${jdbcUrl}获取    资源文件中的数据,如果是配置类,需要资源文件解析器的支持。    PropertySourcesPlaceholderConfigurer
    15     @Autowired
    16         用来注入bean类型的,会自动按照类型进行注入,如果有多个类型匹配,会使用变量成名作为id到spring容器中进行匹配注入
    17     @Qualifier
    18         用来配合@Autowired,通过指定id进行bean类型的注入
    19 还可以使用在方法的参数中,通过id进行bean类型的注入
    20     @Resource
    21         用来通过id进行bean类型的注入,相当于配置了@Autowired+@Qualifier两个注解
    22 1.3    配置类相关
    23     @Configuration
    24         通知spring这是一个配置类,用来代替applicationContext.xml的
    25     @ComponentScan
    26         用来在配置类上设置注解扫描的包相当于<context:component-scan base-package="cn.itcast"></context:component-scan>
    27     @Import
    28         用来引入其他类的信息,将其导入到配置类中。
    29     @PropertySource
    30         该注解可以用来加载资源文件,比如:jdbc.properties
    31     @EnableTransactionManagement
    32         使用注解事务
    33     @EnableAspectJAutoProxy
    34         使用注解的AOP
    35 1.4    测试相关
    36     @RunWith
    37         通知spring使用spring的test模块整合junit,方便我们进行测试SpringJUnit4ClassRunner.class
    38     @ContextConfiguration
    39         该注解是用来加载xml配置文件或者配置类的,用以创建spring容器。
    40             配置类的加载方式
    41         classes={SpringConfiguration.class}
    42             Xml的加载方式
    43         locations={"classpath:applicationContext.xml"}
    44 1.5    事务
    45     @Transactional
    46         配置事务管理的注解,可以设置传播行为和是只读等。
    47 1.6    其他
    48     @Scope
    49         设置bean的作用域的
    50     @PostConstruct
    51         设置方法为初始化方法
    52     @PreDestroy
    53         设置方法为销毁方法      

        2.2、Struts2 注解   

    1 @Namespace("/customer")
    2     设置名称空间
    3 @ParentPackage("struts-default")
    4     设置所要继承的父包
    5 @Action
    6     指定当前动作方法的动作名称。也就是xml配置时action标签的name属性。
    7 @Result
    8     出现在Action注解中,表示当前Action可用此视图,相当于配置一个局部结果集视图
    9 出现在类上,表示当前动作类中的所有动作方法都可以用此视图,相当于配置一个全局结果集视图
    10 @InterceptorRef
    11 用于配置要引用的拦截器或者拦截器栈

        2.3、Hibernate 注解

          

     1 @Entity
     2     作用:指定当前类是实体类。写上此注解用于在创建SessionFactory/EntityManager时,加载映射配置。
     3 @Table
     4     作用:指定实体类和表之间的对应关系。
     5     属性:
     6         name:指定数据库表的名称
     7 @Id
     8     作用:指定当前字段是主键。
     9 @GeneratedValue
    10     作用:指定主键的生成方式。JPA的主键生成方式详解见2.4小节的说明。
    11     属性:
    12         strategy :指定主键生成策略。JPA支持四种生成策略,具体介绍看2.4小节。
    13 @Column
    14     作用:指定实体类属性和数据库表之间的对应关系
    15     属性:
    16         name:指定数据库表的列名称。
    17             unique:是否唯一  
    18             nullable:是否可以为空  
    19             inserttable:是否可以插入  
    20             updateable:是否可以更新  
    21             columnDefinition: 定义建表时创建此列的DDL  
    22             secondaryTable: 从表名。如果此列不建在主表
    23 @OneToMany
    24     建立一对多的关系映射
    25 @ManyToOne
    26     建立多对一的关系
    27 @JoinColumn
    28     用于定义主键字段和外键字段的对应关系
    29 @ManyToMany
    30     用于映射多对多关系
    31 @JoinTable
    32     针对中间表的配置

        2.4、Spring MVC 注解 (待后续更新)

        2.5、Mybatis 注解 (待后续更新)

      3、自定义注解

       尴尬了,我也不会

      

  • 相关阅读:
    Ios 从无到有项目 MVVM模式(两)
    国外论文搜索
    memcpy的使用方法总结
    简单工厂模式
    curl命令具体解释
    java.lang.Math中的基本方法
    海量数据处理面试题集锦
    BEGINNING SHAREPOINT&#174; 2013 DEVELOPMENT 文件夹
    TinyXml高速入门(一)
    Android SDK 2.2 离线安装
  • 原文地址:https://www.cnblogs.com/RedHat-Linux/p/7862344.html
Copyright © 2020-2023  润新知