Java 注解之总结
注解是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、自定义注解
尴尬了,我也不会
Java 注解之总结的更多相关文章
- Java注解
Java注解其实是代码里的特殊标记,使用其他工具可以对其进行处理.注解是一种元数据,起到了描述.配置的作用,生成文档,所有的注解都隐式地扩展自java.lang.annotation.Annotati ...
- 19.Java 注解
19.Java注解 1.Java内置注解----注解代码 @Deprecated //不推荐使用的过时方法 @Deprecated ...
- Java注解入门
注解的分类 按运行机制分: 源码注解:只在源码中存在,编译后不存在 编译时注解:源码和编译后的class文件都存在(如@Override,@Deprecated,@SuppressWarnin ...
- java注解(Annotation)解析
注解(Annotation)在java中应用非常广泛.它既能帮助我们在编码中减少错误,(比如最常见的Override注解),还可以帮助我们减少各种xml文件的配置,比如定义AOP切面用@AspectJ ...
- JAVA 注解的几大作用及使用方法详解
JAVA 注解的几大作用及使用方法详解 (2013-01-22 15:13:04) 转载▼ 标签: java 注解 杂谈 分类: Java java 注解,从名字上看是注释,解释.但功能却不仅仅是注释 ...
- attilax.java 注解的本质and 使用最佳实践(3)O7
attilax.java 注解的本质and 使用最佳实践(3)O7 1. 定义pojo 1 2. 建立注解By eclipse tps 1 3. 注解参数的可支持数据类型: 2 4. 注解处理器 2 ...
- paip.java 注解的详细使用代码
paip.java 注解的详细使用代码 作者Attilax 艾龙, EMAIL:1466519819@qq.com 来源:attilax的专栏 地址:http://blog.csdn.net/att ...
- JAVA 注解的几大作用及使用方法详解【转】
java 注解,从名字上看是注释,解释.但功能却不仅仅是注释那么简单.注解(Annotation) 为我们在代码中添加信息提供了一种形式化的方法,是我们可以在稍后 某个时刻方便地使用这些数据(通过 解 ...
- 框架基础——全面解析Java注解
为什么学习注解? 学习注解有什么好处? 学完能做什么? 答:1. 能够读懂别人写的代码,特别是框架相关的代码: 2. 让编程更加简洁,代码更加清晰: 3. 让别人高看一眼. spring.mybati ...
- Java注解配置
Java注解是附加在代码中的一些元信息,用于一些工具在编译.运行时进行解析和使用,起到说明.配置的功能.注解不会也不能影响代码的实际逻辑,仅仅起到辅助性的作用.包含在 java.lang.annota ...
随机推荐
- .NET下WebBrowser的一个BUG以及其替代品——geckofx
今天研究一个小问题,在C#的WebBrowser下打开奇艺网的视频,经常整个FLASH就偏了,进度条控制条什么的都没有. 要全屏一下然后还原才能解决这个问题. 如下,图1为webbrowser打开,图 ...
- 51. ExtJs4之Ext.util.JSON编码和解码JSON对象
转自:https://blog.csdn.net/iteye_9439/article/details/82518158 1.decode() 该方法用于将符合JSON格式的String进行解码成为一 ...
- PCB SVN 服务端VisualSVN Server与TortoiseSVN
PCB 工程系统SVN源代码招病毒破坏以后,一周时间都没有源代码同步更新了,今天终于将SVN源代码数据恢复并重建SVN服务器,这里将SVN搭建安装过程整理如下 一.服务端SVN安装 1.下载地址:ht ...
- thinkphp的model的where条件的两种形式
thinkphp的model的where查询时有两种形式. $model->field('id')->where('customer_num is null or customer_num ...
- cookie和seesion区别
cookie 和session 的区别详解 这些都是基础知识,不过有必要做深入了解.先简单介绍一下. 二者的定义: 当你在浏览网站的时候,WEB 服务器会先送一小小资料放在你的计算机上,Cookie ...
- Unity Sprite Packer 问题集合
介绍 今天突发奇想用了下sprite packer 这个功能,基本用法网上教程一堆一堆的,这里就不赘述了. 在使用sprite packer过程中遇到一些问题,然后各种百度不到答案,最后和谐上网找到了 ...
- ASP.NET 之正则表达式
转载自:http://www.regexlib.com/cheatsheet.htm?AspxAutoDetectCookieSupport=1 Metacharacters Defined MCha ...
- Android 自己搭建一个直播系统吧
服务端用 SRS(Simple Rtmp Server),在这里下载simple-rtmp-server需要Linux系统最好是Ubuntu,装个Ubuntu虚拟机就行了在Linux里,解压缩SRS ...
- sql server 数据分析优化实战(一)——SQL语句优化
前言 在我们进行数据分析的时候,首要的目标是根据业务逻辑,通过编写SQL代码得到我们想要的结果,这是毋庸置疑的.一般情况下,由于我们分析的数据量比较少,体会不出SQL语句各种写法的性能优劣,对SQL代 ...
- python网络编程调用recv函数完整接收数据的三种方法
最近在使用python进行网络编程开发一个通用的tcpclient测试小工具.在使用socket进行网络编程中,如何判定对端发送一条报文是否接收完成,是进行socket网络开发必须要考虑的一个问题.这 ...