先总结整个demo的作用:
demo其实就是重点说明:
1、@Configuration : 通过注解类,证明该类是Spring 的配置 相当于xml文件
2、@Bean : 通过注解有@Configuration注解的类的方法,相当于一个bean对象,即xml中的<bean>
直接上实例:
1、编写User:
public class User {
private String username;
private String password;
private Integer age;
//省略getter和setter
}
2、编写DAO
public class UserDao {
public List<User> queryUserList() {
List<User> result = new ArrayList<User>();
// 模拟数据库的查询
for (int i = 0; i < 10; i++) {
User user = new User();
user.setUsername("username_" + i);
user.setPassword("password_" + i);
user.setAge(i + 1);
result.add(user);
}
return result;
}
}
3、编写service
@Service
public class UserService {
@Autowired // 注入Spring容器中的bean对象
private UserDao userDao;
public List<User> queryUserList() {
// 调用userDAO中的方法进行查询
return this.userDao.queryUserList();
}
}
4、利用java类编写配置(重点)
@Configuration // 通过噶注解证明该类是Spring 的配置 相当于xml文件
@ComponentScan(basePackages = "com.winney.springjavaxml") //自动扫描包,我这里的所有dao、pojo、service都是放在同一个包下 的
public class SpringConfig {
@Bean // 通过该注解注解方法 相当于一个bean对象,即xml中的<bean>
public UserDao getUserDao() {
return new UserDao(); // 直接new对象
}
}
5、测试
public class Mian {
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 user : list) {
System.out.println(user.getUsername() + ", " + user.getPassword() + ", " + user.getPassword());
}
context.close();
// 销毁该容器
context.destroy();
}
}
网友评论