`

Spring Annotation Essays

 
阅读更多

 

注解关键字

@InitBinder用于表单自定义属性绑定。这里我们要求输入一个日期格式的生日。

    case :我们的项目使用定义父类Controller 并定义方法

 

  1.  @InitBinder
  2.     public void initBinder(WebDataBinder binder) {  
  3.         DateFormat format = new SimpleDateFormat("yyyy-MM-dd"); 
  4.         //binder.registerCustomEditor(Date.class, "birthday",new CustomDateEditor(format, true));  第二个参数可有可无, 表明不饿按对象的属性格式化
  5.  
  6.         binder.registerCustomEditor(Date.classnew CustomDateEditor(format, true));  
  7.     }  

 

JSR-250标准注解

@Resource来代替Spring专有的@Autowired注解。 

Spring支持三个由JSR-250规范定义的注解,它们分别是@Resource、@PostConstruct以及@PreDestroy。

@Resource(name=“beanId”或者type=“Class”)

@Autowired() === @Resource(type="")

@Autowired()配合 @Qualifier("beanId") === @Resource(name="beanId")

 

@PostConstruct 于方法上

此方法就会在Bean初始化之后被Spring容器执行(注:Bean初始化包括,实例化Bean,并装配Bean的属性(依赖注入))

 

 @Value在注解的方式(Spring3.0)中,容器加载了Properties文件

 

  1. <util:properties id="jdbc" location="/WEB-INF/database.properties"/>  

 

 

  1. @Value("${jdbc.url}")   
  2. private String url;

 

@ImportResouce 如果只有这么一个类使用该配置文

 

  1. @ImportResource("/WEB-INF/database.properties")  
  2. public class AccountDaoImpl extends AccountDao { 

 

@RequestParam  

@RequestParam("username")

@PathVariable

@PathVariable()参数可有可无,默认按照名称匹配,参表示对应地址栏参数名称

 

@Repository

明确这个类是用于持久层的实现类,注意这样的注解不能用于接口,仅适用于实现类!

 

@RequestMapping

@RequestMapping("/url"),亦可以是String[]:@RequestMapping({"/url1","/url2"})

 

 

Spring-Test

 

  1. import org.junit.runner.RunWith;  
  2. import org.springframework.test.AbstractTransactionalDataSourceSpringContextTests;  
  3. import org.springframework.test.context.ContextConfiguration;  
  4. import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;  
  5. import org.springframework.test.context.transaction.TransactionConfiguration;  
  6. import org.springframework.transaction.annotation.Transactional;  
  7.   
  8. @ContextConfiguration(locations = "classpath:applicationContext.xml")  
  9. @RunWith(SpringJUnit4ClassRunner.class)  
  10. @Transactional  
  11. @TransactionConfiguration(transactionManager = "transactionManager", defaultRollback = true)  
  12. public abstract class AbstractTestCase extends  
  13.         AbstractTransactionalDataSourceSpringContextTests {  
  14.   
  15. }  

 

 

 

主要增加了spring-test-2.5.6.jar和junit-4.4.jar两个用于测试的包! 
这里尤其要说明一下,由于我们使用注解方式自然要用到JUnit-4.X系列,而Sring-Test对于JUnit有个累人的要求,JUnit的版本必须是4.4,不支持高版本(如4.5、4.7等)。否则,会产生java.lang.ClassNotFoundException: org.junit.Assume$AssumptionViolatedException异常。

@ContextConfiguration(locations = "classpath:applicationContext.xml")导入配置文件。这时候,我们可以看出之前使用applicationContext.xml文件作为系统总控文件的好处! 当然,Spring-Test的这个配置只认classpath,很无奈,我必须拷贝这些文件到根目录!
@RunWith(SpringJUnit4ClassRunner.class)SpringJUnit支持,由此引入Spring-Test框架支持! 
@Transactional这个非常关键,如果不加入这个注解配置,事务控制就会完全失效! 
@TransactionConfiguration(transactionManager = "transactionManager", defaultRollback = true)这里的事务关联到配置文件中的事务控制器(transactionManager = "transactionManager"),同时指定自动回滚(defaultRollback = true)。这样做操作的数据才不会污染数据库!

AbstractTransactionalDataSourceSpringContextTests要想构建这一系列的无污染纯绿色事务测试框架就必须找到这个基类!

例:

 

  1.   
  2. import java.util.Date;  
  3.   
  4. import org.junit.Test;  
  5. import org.springframework.beans.factory.annotation.Autowired;  
  6. import org.zlex.spring.dao.AccountDao;  
  7. import org.zlex.spring.domain.Account;  
  8.   
  9. public class AccountDaoTest extends AbstractTestCase {  
  10.   
  11.     @Autowired
  12.     private AccountDao accountDao;  
  13.   
  14.     @Test
  15.     public void test() {  
  16.         Account ac = new Account();  
  17.         ac.setBirthday(new Date());  
  18.         ac.setUsername("SPRING");  
  19.         ac.setPassword("SNOWOLF");  
  20.         ac.setEmail("spring@zlex.org");  
  21.   
  22.         // 创建用户  
  23.         accountDao.create(ac);  
  24.     }  
  25.   
  26. }  

 

 

@RunWith(Suite.class)集合测试 

@SuiteClasses( { AccountDaoTest.class })集合,包括AccountDaoTest类,多个测试类可使用逗号分隔
  1. import org.junit.runner.RunWith;  
  2. import org.junit.runners.Suite;  
  3. import org.junit.runners.Suite.SuiteClasses;  
  4.   
  5. @RunWith(Suite.class)  
  6. @SuiteClasses( { AccountDaoTest.class, AccountDaoTest.class })  
  7. public class DaoAllTests {  
  8.   
  9. }  
附赠
JQuery之ajax
  1. $.ajaxSetup({  
  2.         contentType : 'application/json'  
  3.     })

解决org.springframework.web.HttpMediaTypeNotSupportedException: Content type 'application/x-www-form-urlencoded;charset=UTF-8' not supported 

$.post()支持json格式

分享到:
评论

相关推荐

    Spring Annotation简介一

    【Spring Annotation简介一】 在Java开发领域,Spring框架以其强大的功能和灵活性深受广大开发者喜爱。Spring Annotation是Spring框架中的一个重要特性,它极大地简化了配置,提高了代码的可读性和可维护性。这篇...

    Spring annotation

    Spring框架是Java开发中不可或缺的一部分,它通过提供丰富的注解简化了依赖注入、配置管理和AOP(面向切面编程)等任务。本文将深入探讨Spring注解及其在实际开发中的应用。 1. **依赖注入(Dependency Injection, ...

    spring annotation注解

    Spring Annotation 注解 Spring 框架中的注解是用于在 Java 类中添加元数据的,通过这些元数据,Spring 框架可以在运行时提供更多的功能。 Spring 框架提供了多种类型的注解,例如 @Autowired、@Resource、@...

    spring的Annotation注解.

    ### Spring框架中的Annotation注解详解 #### 一、Spring与Annotation的基本概念 Spring框架通过引入Annotation,极大地简化了Java开发中的依赖注入(Dependency Injection, DI)和面向切面编程(AOP)的过程。...

    spring 的Annotation方式

    ### Spring的Annotation方式详解 #### 引言 随着Spring框架的发展,其依赖注入(DI)机制也经历了从XML配置向注解驱动的重大转变。自Spring 3.0版本起,框架引入了一系列注解来简化依赖配置,使得开发人员能够在不...

    Spring的Annotation配置相关讲义

    在Spring框架中,Annotation配置是一种简洁且强大的方式来管理Bean的定义和依赖注入,它消除了传统的XML配置文件,使得代码更加简洁、易读。在Spring 3.0及以上版本中,Annotation配置得到了广泛的应用。 首先,...

    SpringIOC_SpringMVC_SpringAnnotation_JPA

    标题 "SpringIOC_SpringMVC_SpringAnnotation_JPA" 涵盖了四个核心的Java开发框架技术,它们是Spring框架的重要组成部分。Spring框架是一个开源的应用框架,它为Java开发者提供了一个全面的基础设施,用于构建可扩展...

    Spring注释 注入方式源码示例,Annotation

    花了些时间做了一个实验,彻底弄懂了spring Annotation注入的方式。凡带有@Component,@Controller,@Service,@Repository 标志的等于告诉Spring这类将自动产生对象,而@Resource则等于XML配置中的ref,告诉spring此处...

    利用 spring annotation AOP 反射 记录日志

    在IT行业中,Spring框架是Java开发中的核心工具之一,它为开发者提供了许多强大的功能,包括依赖注入、面向切面编程(AOP)等。本文将深入探讨如何利用Spring的注解式AOP和反射机制来实现日志记录,以便更好地理解和...

    Spring_Annotation_AOP

    在本资料"Spring_Annotation_AOP"中,我们将深入探讨Spring框架如何利用注解实现AOP,以及其背后的原理和实践应用。 面向切面编程(AOP)是一种编程范式,旨在提高代码的可维护性和可重用性,通过将关注点分离,...

    Spring MVC Annotation验证的方法

    Spring MVC Annotation验证方法 Spring MVC 框架提供了多种验证方法,其中一种常用的方式是使用Annotation验证。本文将详细介绍 Spring MVC Annotation验证的方法,包括使用 Spring MVC 自带的 Annotation 验证和...

    SpringMVC Spring MyBatis 框架整合 Annotation Maven Project

    在IT行业中,SpringMVC、Spring和MyBatis是三个非常重要的Java开发框架,它们各自在Web应用的各个层面上发挥着关键作用。本项目是一个整合了这三个框架的基于Annotation和Maven的项目,旨在提供一种高效、灵活的开发...

    Spring+mybatis annotation形式

    在Java Web开发中,Spring和MyBatis是两个非常重要的框架。Spring是一个全面的后端开发框架,提供了依赖注入、AOP(面向切面编程)、事务管理等功能;而MyBatis则是一个轻量级的持久层框架,它将SQL与Java代码分离,...

    springAnnotation.zip

    Spring框架是Java开发中不可或缺的一部分,它以其强大的依赖注入(DI)和面向切面编程(AOP)功能而闻名。Spring注解开发是Spring框架的一个重要特性,它使得开发者能够摆脱XML配置,更加简洁地进行应用程序的构建。...

    Spring Annotation (注解)详解

    Spring注解是Spring框架中的一种核心特性,它允许开发者在Java源代码中嵌入元数据,简化了XML配置,提高了代码的可读性和维护性。从Spring 2.5开始,注解成为主流配置方式,提供了更加简洁和直观的Bean定义和依赖...

    Spring IOC Annotation 注入 学习实例

    Annotation注入是Spring IOC的一种实现方式,它利用Java注解替代XML配置来管理Bean的依赖关系,使得代码更加简洁、可读性更强。 在Spring框架中,我们主要关注以下几个关键的注解: 1. `@Component`:这是一个基础...

Global site tag (gtag.js) - Google Analytics