元注解:
@Retention(RetentionPolicy.RUNTIME)  
@Target({ElementType.METHOD}) 
作用:@interface用来声明一个注解,其中的每一个方法实际上是声明了一个配置参数。
 
示例:
@Retention(RetentionPolicy.RUNTIME)  
@Target({ElementType.METHOD}) 
public @interface  LogAnnotation {
//业务模块Id
String moduleId();
//功能ID
abstract String functionId() default "99";
    //操作说明
    String option();
    //app参数
    abstract String[] Params() default{};
}
 
元注释,即为注解本身做注解,@interface用来声明一个注解,其中的每一个方法实际上是声明了一个配置参数。方法的名称就是参数的名称,返回值类型就是参数的类型。可以通过default来声明参数的默认值。在这里可以看到@Retention和@Target这样的元注解,用来声明注解本身的行为。@Retention用来声明注解的保留策略,有CLASS、RUNTIME和SOURCE这三种,分别表示注解保存在类文件、JVM运行时刻和源代码中。只有当声明为RUNTIME的时候,才能够在运行时刻通过反射API来获取到注解的信息。@Target用来声明注解可以被添加在哪些类型的元素上,如类型、方法和域等。
 
JPA注释:
 
@Repository或是使用Spring的<jpa:repositories>来扫描包下的DAO
作用:使用Spring JPA框架来自动实现业务逻辑
 
示例:
@Repository
public interface AppVersionDao extends PagingAndSortingRepository<AppVersion, String> {
 
}
 
<jpa:repositories base-package="com.foresee.hn.**.dao"  entity-manager-factory-ref="entityManagerFactory"
transaction-manager-ref="transactionManager" repository-impl-postfix="CustomImpl"/>
 
 
@Service("gztdService")
@Transactional()
作用:在service类前加上@Transactional,声明这个service所有方法需要事务管理。每一个业务方法开始时都会打开一个事务。 
 
@Transactional(readOnly = true)
作用:声明成只读事务,提高查询效率。
 
示例:
@Service("gztdService")
@Transactional(readOnly = true)
public class GztdServiceImpl extends GenericServiceImpl<RzGztd, Long> implements GztdService {     
...
}
  
@Transactional
public void addRzGztd(RzGztd rzGztd){
...
}
 
 
@PersistenceContext(unitName="itax")
作用:注入由Spring容器托管的EntityManager对象,执行与持久化有关的操作
 
示例:
@PersistenceContext(unitName="itax")
private EntityManager entityManager;
 
applicationContext.xml中的配置:
<bean id="abstractEntityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean" abstract="true">
<property name="jpaVendorAdapter">
<bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter">
<property name="generateDdl" value="${hibernate.generateDdl}" />
<property name="showSql" value="${hibernate.showSql}" />
<property name="database" value="${hibernate.database}"/>
</bean>
</property>
<property name="persistenceUnitName" value="itax"></property>
<property name="jpaProperties">
<map>
     <entry key="hibernate.format_sql" value="${hibernate.format_sql}"/>
</map>
</property>
<property name="packagesToScan" value="com.foresee.hn.taxoffice.common.entity" />
</bean>
 
@RequestMapping(value = "/submit")
作用:可在类或方法上添加,组合使用,表示对应的请求会被该Controller接受。
 
示例:
@Controller
@RequestMapping(value="/submit")
public class AppVersionController extends CommonController {
...
 
    @LogAnnotation(moduleId=LogModule.MODUlE_WEB_APPGL,functionId=LogModule.WEB_APPGL_INDEX) 
    @RequestMapping(value="/release",method={RequestMethod.POST,RequestMethod.GET})
    
    public String showReleasePage(AppVersionBean bean,Model model,HttpServletRequest request){
    bean.setUserId(String.valueOf(this.getLoginUser(request).getCzydm()));
    bean.setUserName(this.getLoginUser(request).getCzyxm());
    bean.setReleaseTime(new Date());
    bean.setVersionId(sequenceService.getAppVersionSequence());
    model.addAttribute("queryParams", bean);
    return "main/app/release";
    }
 
}
 
 

项目中用到的Java注解的更多相关文章

  1. LinkedHashMap和HashMap的比较使用 由于现在项目中用到了LinkedHashMap,并不是太熟悉就到网上搜了一下。 ? import java.util.HashMap; impo

    LinkedHashMap和HashMap的比较使用 由于现在项目中用到了LinkedHashMap,并不是太熟悉就到网上搜了一下. import java.util.HashMap; import ...

  2. 细数Java项目中用过的配置文件(ini 篇)

    Java 菜鸟,会把可变的配置信息写死在代码里:Java 老鸟,会把可变的配置信息提取到配置文件中.坊间流传这么一句非科学的衡量标准,来评判程序员的级别. 那么,项目中的配置信息,你平时都是怎样来实现 ...

  3. 细数Java项目中用过的配置文件(YAML篇)

    灵魂拷问:YAML,在项目中用过没?它与 properties 文件啥区别? 目前 SpringBoot.SpringCloud.Docker 等各大项目.各大组件,在使用过程中几乎都能看到 YAML ...

  4. Java注解基本原理

    注解目前非常的流行,很多主流框架都支持注解,而且自己编写代码的时候也会尽量的去用注解,一时方便,而是代码更加简洁. 注解的语法比较简单,除了@符号的使用之外,它基本与Java固有语法一致.Java S ...

  5. 有用的Java注解

    好处: 能够读懂别人的代码,特别是框架相关的代码: 让编程更加简洁,代码更加清晰. 使用自定义注解解决问题!! Java1.5版本引入. Java中的常见注解 @Override:告诉使用者及编译器, ...

  6. Java注解解析-搭建自己的注解处理器(CLASS注解使用篇)

    该文章是继Java注解解析-基础+运行时注解(RUNTIME)之后,使用注解处理器处理CLASS注解的文章.通过完整的Demo例子介绍整个注解处理器的搭建流程以及注意事项,你将知道如何去搭建自己的注解 ...

  7. java 注解开发

    目录 注解 JDK自带的注解三个 注解分类 按照运行机制 按照来源分类 自定义注解的语法要求 元注解 解析注解 获取注解的注解 Spring中的注解 组合注解 注解 JDK自带的注解三个 @Overr ...

  8. 框架基础——全面解析Java注解

    为什么学习注解? 学习注解有什么好处? 学完能做什么? 答:1. 能够读懂别人写的代码,特别是框架相关的代码: 2. 让编程更加简洁,代码更加清晰: 3. 让别人高看一眼. spring.mybati ...

  9. @interface java注解

    @Documented,@Retention,@Target,@Inherited 1. 编写自定义@Todo注解经常我们在写程序时,有时候有些功能在当前的版本中并不提供,或由于某些其它原因,有些方法 ...

随机推荐

  1. qt example

    #include"mainwindow.h" #include"ui_mainwindow.h" #include<QWebFrame> #incl ...

  2. 打造自己的sublime text

    博主今天正在了解学习LESS,在找相关资源的过程中,发现自己的sublime text和别人差别有点大,突然脑海中一股逼格的气息油然而生,于是查找了相关资料,并打造了一下风格. 下面开始正文. 首先是 ...

  3. Java多线程之非线程安全

    在Java多线程中我会重点总结五个如下的技术点: 1.非线程安全是如何出现的 2.synchronized对象监视器为Objec时的使用 3.synchronized对象监视器为Class时的使用 4 ...

  4. [译]Stairway to Integration Services Level 8 - SSIS 工作流管理高级

    介绍 在前两个章节我们,建立了一个新的SSIS包,简单的使用了一下scripting还有优先约束,并且测试了MaxConcurrentExecutables 属性.  同时实验了  “On Succe ...

  5. tomcat使用所遇到的问题

    1.在使用eclipse添加server的时候添加不了tomcat服务器: 如图左图所示,添加按钮已成灰色,无法操作. 解决办法:找到workspace的工作空间->.metadata-> ...

  6. 用ToggleButton和ImageView实现不同状态下显示的切换

    靠,写的时候第一次因为把implements OnCheckedChangeListener这里实现的接口写错了,搞了很久, 后来发现又少了这两句错了 btn = (ToggleButton) fin ...

  7. CSS 初始化 代码

    腾讯QQ官网 样式初始化 ;} body{font:12px"宋体","Arial Narrow",HELVETICA;background:#fff;-web ...

  8. ThinkPHP第六天(正则表达式)

    1.正则表达式:原子 ①a-z,A-Z,0-9,_ ②用(abc)圆括号括起来的单元符号,表示括号里面的作为一个完整的组合,必须完成匹配,不被拆分来 ③用方括号括起来[abc][^abc]称之为原子表 ...

  9. ubuntu下配置nginx+uwsgi+django

    服务器配置是Ubuntu14.04 64位OS ubuntu14.04默认是安装好了python2.7版本不用自己安装了. 先更新下源 sudo apt-get update 第一步先安装pip su ...

  10. FPGA知识大梳理(一)对FPGA行业的一点感言

    今天想开始把这FPGA行业的知识点做一个大整理,从个人感想,到语法,到器件基础,难点攻克,到项目应用.把自己这几年接触到的知识做一个全面的回顾,看看自己这几年走过的路. 人生无常,几年的跌跌撞撞勉强算 ...