Spring的Java配置方式

2026-02-23 06:24:54

1、我们通过Spring MVC的三层模型来介绍Java配置,首先我们需要创建一个实体类User,该实体类有两个属性,分别为username和password,我们为该实体类创建Getter和Setter方法,在IntelliJ IDEA中自动创建Getter和Setter方法请参考下文。  

public class User {      private String username;      private String password;      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;      }  

Spring的Java配置方式

2、接下来我们编写持久化层代码,我们模拟生成一组数据放在List集合中,代码如下图所示。

  

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.setPassword("password"+i);              user.setUsername("username"+i);              result.add(user);          }          return result;      }  }  

Spring的Java配置方式

3、接下来我们编写Service层代码,将步骤2创建的UserDao使用@Autowired注解的方式注入到UserService中,UserService使用@Service注解标识该类被Spring容器创建和管理。

@Service  public class UserService {      @Autowired      // 注入Spring容器中的bean对象      private UserDao userDao;      public List<User> queryUserList() {          // 调用userDao中的方法进行查询          return this.userDao.queryUserList();      }   }  

Spring的Java配置方式

4、接下来我们来讲解使用Java配置中最重要的注解@Configuration和@Bean了,Spring的Java配置方式是通过@Configuration和@Bean这两个注解实现的,@Configuration作用于类上,相当于一个xml文件,@Bean作用于方法上,相当于xml配置中的<bean>,@ComponentScan(basePackages="com.hh.springboot.javaconfig") 用于配置扫描包,该包为你实际项目创建的包名。以下代码 通过Java配置的方式进行配置Spring,并实现了Spring的IOC功能。  

@Configuration   @ComponentScan(basePackages = "com.test.config")  public class SpringConfig       // 该注解表明这是一个Bean对象,相当于xml中的<bean>      @Bean      public UserDao getUserDao() {          return new UserDao();      }  }  

Spring的Java配置方式

5、接下来我们写一个测试类,通过创建main方法的形式来从容器中获取bean对象并调用对象的方法。 

public class TestSpring {      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.getPassword()+user.getUsername());          }          // 销毁该容器          context.destroy();      }  }  

Spring的Java配置方式

6、使用上述注解还需要导入相应的jar包,我们使用maven来管理jar包,在pom.xml文件中加入如下依赖即可。

<dependency>      <groupId>org.springframework.boot</groupId>      <artifactId>spring-boot-starter-web</artifactId>  </dependency>  

Spring的Java配置方式

1、我们使用@PropertySource注解和@Value注解来获取配置文件中的某个属性值,代码如下。  

@Configuration   @ComponentScan(basePackages = "com.test.config")  @PropertySource(value={"classpath:config.properties",          "classpath:config1.properties"}          ,ignoreResourceNotFound = true)  public class SpringConfig {      @Value("${jdbc.url}")      private String jdbcUrl;      // 该注解表明这是一个Bean对象,相当于xml中的<bean>    @Bean      public UserDao getUserDao() {          return new UserDao();      }  }  

Spring的Java配置方式

2、若没有属性文件时可以设置忽略ignoreResourceNotFound = true即可。

Spring的Java配置方式

猜你喜欢