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

掌握注解的优势:

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

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

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

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

一、Java常见注解

  1、Java 自带注解    

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

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

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

      

  2、第三方注解

    2.1、Spring 注解

      

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

    2.2、Struts2 注解   

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

    2.3、Hibernate 注解

      

 @Entity
作用:指定当前类是实体类。写上此注解用于在创建SessionFactory/EntityManager时,加载映射配置。
@Table
作用:指定实体类和表之间的对应关系。
属性:
name:指定数据库表的名称
@Id
作用:指定当前字段是主键。
@GeneratedValue
作用:指定主键的生成方式。JPA的主键生成方式详解见2.4小节的说明。
属性:
strategy :指定主键生成策略。JPA支持四种生成策略,具体介绍看2.4小节。
@Column
作用:指定实体类属性和数据库表之间的对应关系
属性:
name:指定数据库表的列名称。
unique:是否唯一
nullable:是否可以为空
inserttable:是否可以插入
updateable:是否可以更新
columnDefinition: 定义建表时创建此列的DDL
secondaryTable: 从表名。如果此列不建在主表
@OneToMany
建立一对多的关系映射
@ManyToOne
建立多对一的关系
@JoinColumn
用于定义主键字段和外键字段的对应关系
@ManyToMany
用于映射多对多关系
@JoinTable
针对中间表的配置

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

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

  3、自定义注解

   尴尬了,我也不会

  

最新文章

  1. C# 通过Selecnuim WebDriver操作非IE浏览器
  2. Java学习——连接数据库
  3. Nginx配置文件(nginx.conf)配置详解
  4. 华为OJ平台——字符串通配符
  5. ionic preparing for ios 9
  6. OSG Win7 + VS2015 编译
  7. 【开源框架】Android之史上最全最简单最有用的第三方开源库收集整理,有助于快速开发,欢迎各位网友补充完善
  8. JQuery&amp;原生js ——实现剪刀石头布小游戏
  9. 关于ASL(平均查找长度)的简单总结
  10. 自制操作系统Antz(9)——实现内核 (下) 实现图形化界面
  11. AVR 嵌入式单片机芯片的中断系统介绍
  12. 把旧系统迁移到.Net Core 2.0 日记(5) Razor/HtmlHelper/资源文件
  13. 6.Django扩展
  14. Alpha 贡献分及转会人员确定
  15. 记录一次服务器CPU 100%的解决过程
  16. mysqlsla 安装
  17. leetcode190
  18. 接雨水12 &#183; Trapping Rain Water12
  19. 关于TagHelper的那些事情——Microsoft.AspNet.Mvc.TagHelpers介绍
  20. docker 启动容器报错

热门文章

  1. MySQL max_connections 总是 214 。不能设大了? max_connections = 214
  2. jquery模拟下拉框
  3. JavaScript中.和[]有什么区别?
  4. 题解报告:hdu 1272 小希的迷宫
  5. ACM_蛋糕小王子铁头娃
  6. 数字签名与数字证书以及https
  7. Git系列学习(1)-Git安装
  8. 6.10---mybatis中两张表查询数据dao层
  9. ThinkPHP的基础使用
  10. wordpress登录账号之后才能查看页面,实例