概述
Spring的配置方式有三种:
1、通过XML文件的方式(常用)
2、基于注解的配置方式(常用)
3、Java配置(我们今天要讲的)
这三种配置方式是随着Spring技术发展渐进式推出。
Spring1.X版本时代,使用xml文件配合方式;到了Spring2.X时代,尤其是jdk1.5版本有了注解技术后,Spring开始有了注解配置;再到Spring3X时代,Spring开始有了Java配置设计概念,并且开始实现;等到了Spring4.x版本,Spring官方开始推进使用Java配置的方式,所有开始了解Java配置。
学习Java配置,更主要的原因是现在的新技术中开始抛弃前面两种配置方式,使用Java配置。比如现在很多人使用的SpringBoot技术。我相信很多人开始关注“Java配置”,也是应为学习SpringBoot时候听到的。这里通过案列说明演示Java配置。
1、Java配置实现
Spring的Java配置方式是通过 @Configuration 和 @Bean 这两个注解实现的:
(1)@Configuration 作用于类上,相当于一个xml配置文件;
(2)@Bean 作用于方法上,相当于xml配置中的<bean>;
2、代码演示
编写pojo类 User
package com.yuanhou.javaconfig;
/**
* 用户pojo
* @author 15261
*
*/
public class User {
private String username;
private String password;
private Integer age;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
}
编写dao层
package com.yuanhou.javaconfig;
import java.util.ArrayList;
import java.util.List;
/**
* 用户DAO层
* @author 15261
*
*/
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;
}
}
说明:这里我们忽略查询数据库操作,数据库操作不是本篇重点,在DAO层我们模拟数据库查询操作
编写Service层
package com.yuanhou.javaconfig;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
/**
* 用户service
* @author 15261
*
*/
@Service
public class UserService {
@Autowired
// 注入Spring容器中的bean对象
private UserDAO userDAO;
public List<User> queryUserList() {
// 调用userDAO中的方法进行查询
return this.userDAO.queryUserList();
}
}
编写Java配置类(这个是关键)
package com.yuanhou.javaconfig;
import javax.sql.DataSource;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.PropertySource;
import com.jolbox.bonecp.BoneCPDataSource;
@Configuration
// 通过该注解来表明该类是一个Spring的配置,相当于一个xml文件
@ComponentScan(basePackages = "com.yuanhou.javaconfig")
public class SpringConfig {
@Bean
// 通过该注解来表明是一个Bean对象,相当于xml中的<bean>
public UserDAO getUserDAO() {
return new UserDAO(); // 直接new对象做演示
}
}
编写测试类
package com.yuanhou.javaconfig;
import java.util.List;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
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 user : list) {
System.out.println(user.getUsername() + ", " + user.getPassword() + ", " + user.getPassword());
}
// 销毁该容器
context.destroy();
}
}
重点说明:
通过Java配置的方式,我们获取Spring容器的方法是:
AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(SpringConfig.class);
使用XML配置的方式,我们获取Spring容器的方法是:
ApplicationContext context= new ClassPathXmlApplicationContext("com/yuanhou/aop/bean.xml");
如果采用以前的方式,我们必须在UserDAO类上添加@Repository注解以后,才能在UserService类中直接使用UserDAO
通过Java配置类SpringConfig 配置后,类似于通过XML文件进行配置,所有可以直接使用。
最后
以上就是害怕手机为你收集整理的什么是Java配置?案列讲解的全部内容,希望文章能够帮你解决什么是Java配置?案列讲解所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复