@Configuration做用在類上,至關於一個xml文件java
@bean做用於方法上,至關於xml配置中的<bean>標籤spring
一個例子:數據庫
新建一個Springboot工程springboot
新建一個User類:User.java測試
1 package com.springboot.test; 2 3 //創建一個User對象 4 public class User { 5 private String username; 6 private String password; 7 private Integer age; 8 9 public String getUsername() { 10 return username; 11 } 12 13 public void setUsername(String username) { 14 this.username = username; 15 } 16 17 public String getPassword() { 18 return password; 19 } 20 21 public void setPassword(String password) { 22 this.password = password; 23 } 24 25 public Integer getAge() { 26 return age; 27 } 28 29 public void setAge(Integer age) { 30 this.age = age; 31 } 32 }
新建一個數據庫管理類:UserDAO.java,這裏模擬數據庫查詢操做。this
1 package com.springboot.test; 2 3 import java.util.ArrayList; 4 import java.util.List; 5 6 // 模擬數據庫操做 7 public class UserDAO { 8 public List<User> queryUserList(){ 9 List <User> result = new ArrayList<User>(); 10 for (int i=0;i<10;i++){ 11 User user = new User(); 12 user.setUsername("username:"+i); 13 user.setPassword("password:"+i); 14 user.setAge(i+1); 15 result.add(user); 16 } 17 return result; 18 } 19 }
新建一個UserService.javaspa
1 package com.springboot.test; 2 3 import org.springframework.beans.factory.annotation.Autowired; 4 import org.springframework.stereotype.Service; 5 6 import java.util.List; 7 8 @Service 9 public class UserService { 10 11 @Autowired 12 //注入spring容器中的bean對象 13 private UserDAO userDAO; 14 15 public List<User> queryUserList(){ 16 //調用userDAO中的方法進行查詢 17 return userDAO.queryUserList(); 18 } 19 }
新建配置文件SpringConfig.java,至關於在Spring中的xml配置。code
1 package com.springboot.test; 2 3 import org.springframework.context.annotation.Bean; 4 import org.springframework.context.annotation.ComponentScan; 5 import org.springframework.context.annotation.Configuration; 6 7 @Configuration //經過該註解代表該類是一個Spring的配置,至關於一個xml文件 8 @ComponentScan(basePackages = "com.springboot.test") //配置掃描包 9 public class SpringConfig { 10 11 @Bean //經過該註解來代表一個Bean對象,至關於一個xml中的<bean>標籤 12 public UserDAO getUserDAO(){ 13 return new UserDAO(); //直接new對象作演示 14 } 15 }
新建一個測試文件TestApplication.javaxml
1 package com.springboot.test; 2 import org.springframework.context.annotation.AnnotationConfigApplicationContext; 3 4 import java.util.List; 5 6 public class TestApplication { 7 public static void main(String[] args) { 8 //經過Java配置來實例化Spring容器 9 AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(SpringConfig.class); 10 //在Spring容器中獲取Bean對象 11 UserService userService = context.getBean(UserService.class); 12 13 //調用對象中的方法 14 List<User> list = userService.queryUserList(); 15 for (User user:list){ 16 System.out.println(user.getUsername() +", "+ user.getPassword()+", "+user.getAge()); 17 } 18 19 //銷燬context 20 context.destroy(); 21 } 22 23 }
文件結構對象
運行輸出
username:0, password:0, 1 username:1, password:1, 2 username:2, password:2, 3 username:3, password:3, 4 username:4, password:4, 5 username:5, password:5, 6 username:6, password:6, 7 username:7, password:7, 8 username:8, password:8, 9 username:9, password:9, 10
能夠看出,使用springboot能夠經過註解的方式對容器進行配置,能夠避免使用晦澀費勁的xml配置,方便開發以及後續的管理。