spring boot的Java配置方式
@Configuration @Bean
Spring 的Java配置方式是通过@Configuration和@Bean这两个注解实现的:
1、@Comfiguration作用于类上,相当于一个xml配置文件 。
2、@Bean作用于方法上,相当于xml配置中的<bean>。
public class User { private int id; private String name; private int age; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } }
public class UserDao { public List<User> queryUserList() { List<User> userList = new ArrayList<>(); for (int i = 0; i < 10; i++) { User u = new User(); u.setAge(20 + i); u.setId(i); u.setName("name" + i); userList.add(u); } return userList; } }
@Service public class UserService { @Autowired private UserDao userDao; public List<User> queryUserList(){ return userDao.queryUserList(); } }
@Configuration //通过该注解来表明该类是一个Spring的配置,相当于一个xml文件 @ComponentScan(basePackages = "com.jrq.springboot.config") public class SpringConfig { //通过注解来表明是一个Bean对象,相当于xml中的<bean> @Bean public UserDao getUserDao(){ return new UserDao(); } }
public class Main { public static void main(String[] args) { //通过Java配置来实例化Spring容器 AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(SpringConfig.class); //在Spring容器中获取Bean对象 UserService userService = context.getBean(UserService.class); List<User> list = userService.queryUserList(); for (User u:list) { System.out.printf(u.getName()+","+u.getAge()+","+u.getId()); } context.destroy();// } }