当前位置: 首页 > news >正文

Spring 学习(五)JavaConfig 实现配置

1. 使用 JavaConfig 实现配置

  • JavaConfig 是 Spring 项目的一个子项目,Spring 4 后成为核心功能。

  • 注意:

    • 如果开启包扫描,加载配置类以后就可以通过反射拿到配置类中的对象了。
    • @Bean 只写在方法上,返回的是一个对象,但一般不获取已经在容器中的对象。
    • @Bean 可以用于通过方法获取数据库连接池 Connection 这种对象。
  • 实现配置案例

    • 实体类

      /*** TODO* 用户类* @author why* @since 2021/7/5 15:51*/
      // 说明这个实体类注册到 Spring 中了
      @Component
      public class User {// 为属性注入值@Value("why")public String name;public void setName(String name) {this.name = name;}public String getName() {return name;}// 重载@Overridepublic String toString() {return "User{" +"name='" + name + '\'' +'}';}
      }
      
    • 配置类

      /*** TODO* 配置类* @author why* @since 2021/7/5 16:14*/
      // 本身就是一个 @Component,说明此类也注册到 Spring 中了
      // 相当于 beans.xml,说明此类是一个配置类
      @Configuration
      // 扫描包,使此包内的所有注解有效
      @ComponentScan("com.why.pojo")
      // 引入其他配置
      @Import(WhyConfig.class)
      public class MyConfig {// 相当于 XML 文件中的 <bean/>,方法名是 id 属性,返回值是 class 属性@Beanpublic User getUser(){return new User();  // 返回要注入到 bean 的对象}
      }
      
    • 测试类

      /*** TODO* 测试类* @author why* @since 2021/7/5 16:28*/
      public class MyTest {public static void main(String[] args) {// 通过注解获得上下文ApplicationContext context = new AnnotationConfigApplicationContext(MyConfig.class);User user = (User) context.getBean("getUser");System.out.println(user.getName());}
      }
      

http://www.lryc.cn/news/176073.html

相关文章:

  • 【Synapse数据集】Synapse数据集介绍和预处理,数据集下载网盘链接
  • 【运动规划算法项目实战】Dynamic Window Approach算法(附ROS C++代码)
  • 第十四届蓝桥杯大赛软件赛决赛 C/C++ 大学 B 组 试题 A: 子 2023
  • Unity 场景淡入淡出效果
  • 快速使用Spring Cache
  • Scrum敏捷开发培训内训:提升团队能力和效率的重要途径
  • kaggle新赛:Optiver 美股价格预测赛题解析
  • Vue 学习笔记 错误ResizeObserver loop completed with undelivered notifications
  • Wi-Fi直连分享:Android设备间的高速连接
  • LeetCode 面试题 05.06. 整数转换
  • 增强for循环和一般for循环的对比使用
  • 云原生之使用Docker部署RSS阅读器Huntly
  • Powershell 实现禁用密码复杂性,空密码
  • 【c语言】详解动态内存管理
  • 深度学习概念——端对端
  • 苹果触控笔有必要买吗?平价ipad电容笔推荐
  • React的高阶函数
  • Java8实战-总结34
  • uniapp项目实践总结(二十四)安卓平台 APP 打包教程
  • GeoServer地图服务器权限控制
  • Python+requests+unittest+excel实现接口自动化测试框架
  • 25807-2020 间脲基苯胺盐酸盐 课堂随笔
  • 苹果手机通讯录联系人如何一键删除? 1个方法轻松解决!
  • 【Linux成长史】Linux编辑器-gcc/g++使用
  • 【CNN-FPGA开源项目解析】卷积层03--单格乘加运算单元PE 单窗口卷积块CU 模块
  • 一文教你学会ArcGIS Pro地图设计与制图系列全流程(2)
  • ICML 2017: 基于卷积的Seq2Seq解决方案
  • 探索GmSSL+Nginx实践及原理
  • Mybatis框架学习
  • 基于微信小程序的电影院订票系统设计与实现(源码+lw+部署文档+讲解等)