2021-01-22

使用Java方式配置Spring

我们之前使用的Spring的

JavaConfig原来是 Spring 的一个子项目,它通过 Java 类的方式提供 Bean 的定义信息,在Spring4之后的版本, JavaConfig已正式成为Spring的核心功能 。

image-20210120172902668

JavaConfig的核心注解@Configuration,它的源码如下

@Target(ElementType.TYPE)@Retention(RetentionPolicy.RUNTIME)@Documented@Componentpublic @interface Configuration { @AliasFor(annotation = Component.class)	String value() default ""; 	boolean proxyBeanMethods() default true;}

通过源码我们可以看出:

@Configuration是元注解,它有很多其他的注解实现,有一个就是@Component,说明它也会被Spring容器托管,注册到容器中。

@Configuration代表这是一个配置类,就和Spring的applicationContext.

1、创建Bean

  1. 编写一个实体类

    @Component // 添加@Component注解,交给Spring托管public class User { private String name; @Override public String toString() {  return "User{" +    "name='" + name + '\'' +    '}'; } public String getName() {  return name; } public void setName(String name) {  this.name = name; }}
  2. 新建一个config包,编写一个AppConfig类

    @Configuration // @Configuration表示这是一个配置类public class AppConfig { // 通过方法注册一个bean。 // 方法的返回值就Bean的类型,方法名就是bean的id! @Bean public User getUser(){  return new User(); // 返回要注入到Bean的对象 }}

    上面的getUser()方法就相当于

    <beans> <bean id="myService" /></beans>
  3. 测试

    @Testpublic void test01() throws Exception{ // 使用AnnotationConfigApplicationContext获取容器 ApplicationContext context = new AnnotationConfigApplicationContext(AppConfig.class); User user = context.getBean("getUser"); System.out.println(user);}

2、其他配置

2.1、导入其他配置类

@Configuration@Import({WebConfig.class})public class AppConfig { //bean definition...}

它就相当于

<beans> <import resource="WebConfig.

2.2、配置包注解扫描

@Configuration@ComponentScan("com.acme.app.services")public class AppConfig { // various @Bean definitions ...}

它就相当于

<context:component-scan base-package="com.acme.app.services"/>

2.3、其他详细配置

关于javaConfig的方式,详情请见这篇博客:使用JavaConfig形式配置Spring框架,了解一下

关于这种Java类的配置方式,我们在之后的SpringBoot 和 SpringCloud中还会大量看到,我们需要知道这些注解的作用即可!









原文转载:http://www.shaoqun.com/a/512567.html

跨境电商:https://www.ikjzd.com/

汇通天下:https://www.ikjzd.com/w/2055

菜鸟网:https://www.ikjzd.com/w/1547


我们之前使用的Spring的JavaConfig原来是Spring的一个子项目,它通过Java类的方式提供Bean的定义信息,在Spring4之后的版本,JavaConfig已正式成为Spring的核心功能。JavaConfig的核心注解@Configuration,它的源码如下@Target(ElementType.TYPE)@Retention(RetentionPolicy.RUNTIME)
yiqu:yiqu
易佰:易佰
亚马逊欧洲站注册流程及审核事项:亚马逊欧洲站注册流程及审核事项
重大利好!亚马逊在假日购物季提供免费送货服务,非Prime会员也适用!:重大利好!亚马逊在假日购物季提供免费送货服务,非Prime会员也适用!
市值高达9590亿的亚马逊,只是家初创公司?:市值高达9590亿的亚马逊,只是家初创公司?

No comments:

Post a Comment