zoukankan      html  css  js  c++  java
  • Java框架spring Boot学习笔记(七):@Configuration,@bean注解

    @Configuration作用在类上,相当于一个xml文件

    @bean作用于方法上,相当于xml配置中的<bean>标签

    一个例子:

    新建一个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,这里模拟数据库查询操作。

     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.java

     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配置。

     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.java

     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配置,方便开发以及后续的管理。

  • 相关阅读:
    分布式共识算法 (四) BTF算法(区块链使用)
    分布式共识算法 (一) 背景
    分布式事务(六)总结提高
    分布式事务(五)源码详解
    编程书籍阅读随谈(第六篇)
    编程书籍阅读随谈(第五篇)
    编程书籍阅读随谈(第四篇)
    编程书籍阅读随谈(第三篇)
    编程书籍阅读随谈(第二篇)
    实现SM图床上传
  • 原文地址:https://www.cnblogs.com/zylq-blog/p/7898496.html
Copyright © 2011-2022 走看看