我们现在要完全不使用Spring的xml配置了,全权交给Java;
javaConfig是Spring的一个子项目,在Spring4之后,它成了一个核心功能。
-
编写实体类;
package com.beyond.pojo; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Controller; @Controller //这里的注解的意思,就是说这个类被Spring接管了,注册到容器中 public class User { @Value("小明") private String name; public String getName() { return name; } public void setName(String name) { this.name = name; } @Override public String toString() { return "User{" + "name='" + name + '\'' + '}'; } }
-
编写配置类;
package com.beyond.configuration; import com.beyond.pojo.User; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Import; @Configuration //@Configuration代表一个配置类,和之前的beans.xml文件功能一样 @ComponentScan("com.beyond.pojo") @Import(AppConfig2.class) //相当于和之前学的的beans.xml文件中import标签一样 public class AppConfig { @Bean //相当于之前学的bean标签,这个方法的名字,就相当于bean标签中的id属性; 这个方法的返回值,就相当于bean标签中的class属性; public User getUser() { return new User(); //就是返回要注入的bean的对象 } }
package com.beyond.configuration; import org.springframework.context.annotation.Configuration; @Configuration public class AppConfig2 { }
-
测试。
import com.beyond.configuration.AppConfig; import com.beyond.pojo.User; import org.springframework.context.ApplicationContext; import org.springframework.context.annotation.AnnotationConfigApplicationContext; public class MyTest { public static void main(String[] args) { //如果完全使用了配置类方式,那就只能通过AnnotationConfig上下文来获取容器,通过配置类的class对象加载! ApplicationContext context = new AnnotationConfigApplicationContext(AppConfig.class); User User = (User) context.getBean("getUser"); System.out.println(User.getName()); } }