Skip to content

Instantly share code, notes, and snippets.

@rkaneko
Created February 10, 2017 12:11
Show Gist options
  • Save rkaneko/8a0e5c877c616c18f875e3a476f7f087 to your computer and use it in GitHub Desktop.
Save rkaneko/8a0e5c877c616c18f875e3a476f7f087 to your computer and use it in GitHub Desktop.
Testで使用するApplicationContextファイルの設定を共有しやすくするメタアノテーション。これを利用してTest対象ファイルと同じpackageないにTest用ApplicationContextファイルを作成する。
package com.rkaneko.spring.boot;
import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Inherited;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.data.jpa.JpaRepositoriesAutoConfiguration;
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
import org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.PropertySource;
import org.springframework.core.annotation.AliasFor;
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited
@SpringBootApplication(exclude = { DataSourceAutoConfiguration.class, HibernateJpaAutoConfiguration.class,
JpaRepositoriesAutoConfiguration.class })
@PropertySource("classpath:test-application.properties")
public @interface BaseSpringBootApplication {
@AliasFor(annotation = ComponentScan.class, attribute = "basePackageClasses")
Class<?>[] scanBasePackageClasses() default {};
@AliasFor(annotation = ComponentScan.class, attribute = "nameGenerator")
Class<? extends AbstractBeanNameGenerator> nameGenerator() default ClaraBeanNameGenerator.class;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment