項目中用到的Java注釋

來源:互聯網
上載者:User

標籤:

元注釋: @Retention(RetentionPolicy.RUNTIME)   @Target({ElementType.METHOD})  作用:@interface用來聲明一個註解,其中的每一個方法實際上是聲明了一個配置參數。   樣本: @Retention(RetentionPolicy.RUNTIME)   @Target({ElementType.METHOD}) public @interface  LogAnnotation {//業務模組IdString moduleId();//功能IDabstract 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架構來自動實現商務邏輯 樣本: @Repositorypublic 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 {     ...}   @Transactionalpublic 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注釋

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.