Java配置是Spring4.x推荐的配置方式,可以完全替代xml配置。
[email protected] 和 @Bean
Spring的Java配置方式是通过 @Configuration 和 @Bean 这两个注解实现的:
1、@Configuration 作用于类上,相当于一个xml配置文件;
2、@Bean 作用于方法上,相当于xml配置中的;
1.2 示例
该示例演示了通过Java配置的方式进行配置Spring,并且实现了Spring IOC功能。
1.2.1 创建工程以及导入依赖
4.0.0
top.lyf.test
test
1.0-SNAPSHOT
org.springframework
spring-webmvc
4.3.7.RELEASE
com.jolbox
bonecp-spring
0.8.0.RELEASE
${project.artifactId}
org.apache.maven.plugins
maven-resources-plugin
UTF-8
org.apache.maven.plugins
maven-compiler-plugin
1.7
1.7
UTF-8
org.apache.tomcat.maven
tomcat7-maven-plugin
2.2
1.2.2 编写User对象
public classUser {privateString username;privateString password;privateInteger age;publicString getUsername() {returnusername;
}public voidsetUsername(String username) {this.username =username;
}publicString getPassword() {returnpassword;
}public voidsetPassword(String password) {this.password =password;
}publicInteger getAge() {returnage;
}public voidsetAge(Integer age) {this.age =age;
}
}
1.2.3 编写UserDAO 用于模拟与数据库的交互
public classUserDAO {public ListqueryUserList(){
List result = new ArrayList();//模拟数据库的查询
for (int i = 0; i < 10; i++) {
User user= newUser();
user.setUsername("username_" +i);
user.setPassword("password_" +i);
user.setAge(i+ 1);
result.add(user);
}returnresult;
}
1.2.4 编写UserService 用于实现User数据操作业务逻辑
@Servicepublic classUserService {
@Autowired//注入Spring容器中的bean对象
privateUserDAO userDAO;public ListqueryUserList() {//调用userDAO中的方法进行查询
return this.userDAO.queryUserList();
}
}
1.2.5 编写SpringConfig 用于实例化Spring容器
@Configuration //通过该注解来表明该类是一个Spring的配置,相当于一个xml文件
@ComponentScan(basePackages = "top.lyf.springboot.javaconfig") //配置扫描包
public classSpringConfig {
@Bean//通过该注解来表明是一个Bean对象,相当于xml中的
publicUserDao getUserDao(){return new UserDao(); //直接new对象做演示
}
}
1.2.6 编写测试方法 用于启动Spring容器
public classMain {public static voidmain(String[] args) {//通过Java配置来实例化Spring容器
AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(SpringConfig.class);//在Spring容器中获取Bean对象
UserService userService = context.getBean(UserService.class);//调用对象中的方法
List list =userService.queryUserList();for(User user : list) {
System.out.println(user.getUsername()+ ", " + user.getPassword() + ", " +user.getPassword());
}//销毁该容器
context.destroy();
}
}
1.2.7 测试效果
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLicmbw5iYkNjM5kDZilDZyITN2kTO0ETN1YmY4UWN4UmZxIDZ08CX0JXZ252bj91Ztl2Lc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
1.2.8 小结
从以上的示例中可以看出,使用Java代码就完美的替代xml配置文件,并且结构更加的清晰。