注解关键字
@InitBinder用于表单自定义属性绑定。这里我们要求输入一个日期格式的生日。
case :我们的项目使用定义父类Controller 并定义方法
- @InitBinder
- public void initBinder(WebDataBinder binder) {
- DateFormat format = new SimpleDateFormat("yyyy-MM-dd");
- //binder.registerCustomEditor(Date.class, "birthday",new CustomDateEditor(format, true)); 第二个参数可有可无, 表明不饿按对象的属性格式化
- binder.registerCustomEditor(Date.class, new CustomDateEditor(format, true));
- }
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文件
- <util:properties id="jdbc" location="/WEB-INF/database.properties"/>
- @Value("${jdbc.url}")
- private String url;
@ImportResouce 如果只有这么一个类使用该配置文
- @ImportResource("/WEB-INF/database.properties")
- public class AccountDaoImpl extends AccountDao {
@RequestParam
@RequestParam("username")
@PathVariable
@PathVariable()参数可有可无,默认按照名称匹配,参表示对应地址栏参数名称
@Repository
明确这个类是用于持久层的实现类,注意这样的注解不能用于接口,仅适用于实现类!
@RequestMapping
@RequestMapping("/url"),亦可以是String[]:@RequestMapping({"/url1","/url2"})
Spring-Test
- import org.junit.runner.RunWith;
- import org.springframework.test.AbstractTransactionalDataSourceSpringContextTests;
- import org.springframework.test.context.ContextConfiguration;
- import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
- import org.springframework.test.context.transaction.TransactionConfiguration;
- import org.springframework.transaction.annotation.Transactional;
- @ContextConfiguration(locations = "classpath:applicationContext.xml")
- @RunWith(SpringJUnit4ClassRunner.class)
- @Transactional
- @TransactionConfiguration(transactionManager = "transactionManager", defaultRollback = true)
- public abstract class AbstractTestCase extends
- AbstractTransactionalDataSourceSpringContextTests {
- }
主要增加了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异常。
@RunWith(SpringJUnit4ClassRunner.class)SpringJUnit支持,由此引入Spring-Test框架支持!
@Transactional这个非常关键,如果不加入这个注解配置,事务控制就会完全失效!
@TransactionConfiguration(transactionManager = "transactionManager", defaultRollback = true)这里的事务关联到配置文件中的事务控制器(transactionManager = "transactionManager"),同时指定自动回滚(defaultRollback = true)。这样做操作的数据才不会污染数据库!
AbstractTransactionalDataSourceSpringContextTests要想构建这一系列的无污染纯绿色事务测试框架就必须找到这个基类!
例:
- import java.util.Date;
- import org.junit.Test;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.zlex.spring.dao.AccountDao;
- import org.zlex.spring.domain.Account;
- public class AccountDaoTest extends AbstractTestCase {
- @Autowired
- private AccountDao accountDao;
- @Test
- public void test() {
- Account ac = new Account();
- ac.setBirthday(new Date());
- ac.setUsername("SPRING");
- ac.setPassword("SNOWOLF");
- ac.setEmail("spring@zlex.org");
- // 创建用户
- accountDao.create(ac);
- }
- }
@RunWith(Suite.class)集合测试
@SuiteClasses( { AccountDaoTest.class })集合,包括AccountDaoTest类,多个测试类可使用逗号分隔
相关推荐
Spring annotation 样例
Spring Annotation
spring annotation注解 使用Spring注解来注入属性
NULL 博文链接:https://cyhcheng.iteye.com/blog/390551
spring的Annotation注解.
Spring的Annotation配置相关讲义
详解 Spring 3.0 基于 Annotation 的依赖注入实现。。详解 Spring 3.0 基于 Annotation 的依赖注入实现。。
花了些时间做了一个实验,彻底弄懂了spring Annotation注入的方式。凡带有@Component,@Controller,@Service,@Repository 标志的等于告诉Spring这类将自动产生对象,而@Resource则等于XML配置中的ref,告诉spring此处...
关于Spring annotation的详细介绍,包括 @Component,@Autowired 等,感觉还不错。
Spring_Annotation_AOP
NULL 博文链接:https://dolphin-ygj.iteye.com/blog/548314
Spring+mybatis annotation形式 进行增删查改,使用maven容器,配置完整,自己运行多次无问题
SpringMVC Spring MyBatis 框架整合 Annotation Maven Project
Spring IOC Annotation 注入 学习实例
spring annotation 从入门到精通
spring annotation example source code java maven
spring annotation 注解 maven 配套的源码
Spring注解开发代码+脑图+源码分析+spingmvc源码分析
spring使用annotation整合dwr笔记 spring使用annotation整合dwr笔记 spring使用annotation整合dwr笔记