Spring 配置类

一、创建实体类

@Component("user")
public class UserBean {
    ...
}

二、创建配置类

@Configuration
@ComponentScan("chu.yi.bo")
public class Application {
	...
}

      @Configuration 注解表示该类时配置类,使用 AnnotationConfigApplicationContext 容器来加载配置类,该注解的 value 属性用于指定配置类的字节码。@ComponentScan 注解用于指定 Spring 容器需要扫描的包,该注解的 basePackages 属性用于指定要扫描的包。

三、测试

public void testSpring() {
    ApplicationContext applicationContext =
            new AnnotationConfigApplicationContext(Application.class);
    UserBean user = (UserBean) applicationContext.getBean("user");
}

四、@Bean 注解使用

      @Bean 注解作用于方法上,表示该方法创建一个对象,并存入 Spring 容器中。该注解的 name 属性给该方法所创建的对象指定在 Spring 容器中的唯一 id。

@Configuration
@ComponentScan("chu.yi.bo")
public class Application {

    @Bean(name="date")
    public Date createDate() {
        return new Date();
    }
}
@Component("user")
public class UserBean {
    @Value("xiaoming")
    private String username;
    @Value("18")
    private String age;
    @Resource(name="date")
    private Date birthday;
}

五、@Import 注解使用

      可以创建多个配置类,最终使用 @Import 注解将多个配置类合并成一个配置类,最终 Spring 容器之加载一个配置类。最终 Spring 容器的加载配置类需要使用 @Configuration 进行标注,其他的配置类可以省略。@ComponentScan 注解同理。

@Configuration
public class BeanConfig {
	...
}
@Configuration
@ComponentScan("chu.yi.bo")
@Import({BeanConfig.class})
public class Application {
	...
}

六、@PropertySource 注解使用

      @PropertySource 注解用于加载 .properties 配置文件,项目中使用的一些配置信息一般放置在配置文件中。该注解的 value 属性用于指定配置文件的路径,如果配置文件在类路径下,路径前需要添加 classpath:。

      配置文件 UserInfo.properties:

user.username=xiaoming
user.age=18
@Component("user")
@PropertySource("classpath:UserInfo.properties")
public class UserBean {
    @Value("${user.username}")
    private String username;
    @Value("${user.age}")
    private String age;
    @Resource(name="date")
    private Date birthday;
}

你可能感兴趣的:(Java)