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

【spring——命名空间与自动装配】P命名、C命名、Util命名、基于名字自动装配、基于类型自动装配、外部properties文件引入

文章目录

    • 命名空间
      • p命名空间
      • C命名空间
      • util命名空间
    • 自动装配
      • 基于名字进行自动装配
      • 基于类型进行自动装配
    • 引入外部的properties文件

命名空间


p命名空间

可以简化set注入

【1】在xml中设置xmlns:p=http/www.springframework.org/schema/p

【2】配置bean

<bean id="studentBean" class="...." p:name="lxy" p:age="22" p:major="software_engineering"></bean>

C命名空间

可以简化构造注入

【1】在xml中设置xmlns:c=http/www.springframework.org/schema/c

【2】配置bean

<bean id="studentBean" class="...." c:name="lxy" c:age="22" c:major="software_engineering"></bean>

util命名空间

【1】在xml中设置

  • xmlns util=http/www.springframework.org/schema/util

  • xsi:schemaLocation="http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-xsd"

【2】配置bean

<util:properties id = "prop">
	<prop key="driver">...</prop>
    <prop key="url">...</prop>
    <prop key="username">...</prop>
    <prop key="password">...</prop>
</util:>

<bean id="datasource" class="..." >
	<property name="properties" ref="prop"/>
</bean>

自动装配

自动装配是基于set方法的,因此若是有参构造方法,可能会产生错误

基于名字进行自动装配

【1】在service类中写setOrder()方法

【2】在xml文件中配置autowere="byName"id="order"

注意:id的名字为set方法中的实体名(首字母小写)

<bean id="orderServiceBean" class="com.lxy.spring.orderService" autowire="byName"></bean>
<!--注意这里的class不是setOrder()方法所在的类路径,而是需要注入的实体类路径,不同于set注入-->
<bean id="order" class="com.lxy.spring.orderDao"></bean>

基于类型进行自动装配

【1】在service类中写setOrder()方法

【2】在xml文件中配置autowere="byName",根据类型装配的话,bean 不用写id属性,因为在配置文件中,某种类型的实例只能有一个

<bean  class="com.lxy.spring.orderDao"></bean>
<bean  class="com.lxy.spring.customerDao"></bean>

<bean id="orderServiceBean" class="com.lxy.spring.orderService" autowire="byType"></bean>

引入外部的properties文件

【1】在xml文件中引入context命名空间

【2】使用标签context:property-placeholder location=“xxx.properties”

<context:property-placeholder location="jdbc.properties"></context>
<bean id="datasource" class="com.lxy.spring.bean.dataSource"> 
          <property name="driver" value="${jdbc.driver}"/>
          <property name="url" value="${jdbc.url}/>
          <property name="username" value="${jdbc.username}/>
          <property name="password" value="${jdbc.password}/>
</bean>

相关文章:

  • Python 时间和时间戳相互转换
  • Interpreting Machine Learning Models with SHAP: A Comprehensive Guide
  • C++之thread_local变量
  • 【2024德国工作】外国人在德国找工作是什么体验?
  • Android AlarmManager 设定过去的时间会触发事件
  • Mistral AI最新力作——Mistral Large媲美GPT-4
  • Java Web(七)__Tomcat(一)
  • 微服务之qiankun主项目+子项目搭建
  • 数据分析案例-社交媒体情绪数据集可视化分析(文末送书)
  • 【C++进阶】哈希(万字详解)—— 学习篇(上)
  • 【Java多线程】面试常考——锁策略、synchronized的锁升级优化过程以及CAS(Compare and swap)
  • HUAWEI Programming Contest 2024(AtCoder Beginner Contest 342)
  • 数据结构—List集合
  • 博图Modbus组态及参数设定源码
  • DockerCompose安装、使用 及 微服务部署实操
  • 非零基础自学Golang 2 开发环境 2.4 Git 安装
  • 06 估计量的评优准则
  • [附源码]计算机毕业设计校刊投稿系统Springboot程序
  • 【Kotlin 协程】协程异常处理 ② ( SupervisorJob 协程 | supervisorScope 协程作用域构建器函数 )
  • 【世界杯】free-api-worldcup2022 免费世界杯API
  • Qt OpenGL(二十五)——Qt OpenGL 核心模式-Qt封装的函数实现彩色三角形
  • LeetCode 0542. 01 矩阵
  • 【C++智能指针】智能指针的发展和循环引用的原理和解决
  • 央企招聘:正式编制!八险三金!各项福利!中国邮政招人啦!
  • 欧拉公式 Euler‘s Formula
  • 0.安装和配置
  • redis我记不住的那些命令(六)
  • Spring - @PostConstruct 源码解析
  • JS 正则表达式常用方法
  • 2-分类问题 SVM 核函数
  • [附源码]计算机毕业设计校园订餐管理系统Springboot程序
  • GitLab CI/CD系列教程(一)