Springbootカスタム注記に基づく自動アセンブリ

5738 ワード

1.java beanの定義
@Data  //lombok  
public class User {
    private Integer userId;
    private String userName;
}

2.configurationクラスの作成
public class UserConfig {
    @Bean
    public User getUser(){
        User user = new User();
        user.setUserId(1);
        user.setUserName("        ");
        return user;
    }
}

3.注記の定義
@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited
@AutoConfigurationPackage
@Import(UserConfig.class)
public @interface EnableAutoImport {
}

4.呼び出し
@SpringBootApplication
@EnableAutoImport   //         
public class DemoApplication implements InitializingBean {
//     InitializingBean     bean       afterPropertiesSet
    @Autowired
    private User user;   //   user 

    public static void main(String[] args) {

        SpringApplication.run(DemoApplication.class, args);
    }

    @Override
    public void afterPropertiesSet() throws Exception {
    	//            
        System.out.println(user.getUserName());
    }
}