首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Spring和Hibernate -无需在hibernate.cfg.xml中硬编码密码即可使用

Spring和Hibernate是两个在Java开发中常用的框架。

Spring是一个开源的轻量级Java开发框架,它提供了一种简化Java开发的方式。Spring框架的核心特点是控制反转(IoC)和面向切面编程(AOP)。控制反转使得对象之间的依赖关系由框架来管理,而不是由开发者手动管理。面向切面编程则提供了一种在程序运行过程中动态添加功能的方式。Spring框架还提供了许多其他功能,如事务管理、Web开发、集成其他框架等。

Hibernate是一个开源的对象关系映射(ORM)框架,它提供了一种将Java对象映射到关系型数据库表的方式。使用Hibernate,开发者可以通过简单的配置文件和注解来定义对象与数据库表之间的映射关系,从而实现对象的持久化和查询。Hibernate还提供了一系列的查询语言,如HQL(Hibernate Query Language)和Criteria API,用于执行复杂的数据库查询操作。

在使用Hibernate时,通常需要在hibernate.cfg.xml配置文件中指定数据库的连接信息,包括用户名和密码。然而,为了避免在配置文件中硬编码密码,可以使用Spring框架提供的属性占位符功能来动态加载密码。

具体做法是,在Spring的配置文件中,使用占位符${}来表示需要动态加载的属性值。然后,在配置文件中定义一个PropertyPlaceholderConfigurer bean,用于加载外部的属性文件。在属性文件中,可以将数据库的用户名和密码等敏感信息存储起来,并通过占位符引用。

示例配置如下:

代码语言:txt
复制
<!-- 加载外部属性文件 -->
<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
    <property name="location" value="classpath:db.properties" />
</bean>

<!-- 数据源配置 -->
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
    <property name="driverClassName" value="${db.driverClassName}" />
    <property name="url" value="${db.url}" />
    <property name="username" value="${db.username}" />
    <property name="password" value="${db.password}" />
</bean>

<!-- Hibernate配置 -->
<bean id="sessionFactory" class="org.springframework.orm.hibernate5.LocalSessionFactoryBean">
    <property name="dataSource" ref="dataSource" />
    <property name="hibernateProperties">
        <props>
            <prop key="hibernate.dialect">${hibernate.dialect}</prop>
            <prop key="hibernate.show_sql">${hibernate.show_sql}</prop>
        </props>
    </property>
</bean>

在上述示例中,${db.username}${db.password}就是占位符,它们会被PropertyPlaceholderConfigurer加载的属性文件中的对应值替换。

这样,就可以在不暴露密码的情况下使用Hibernate框架进行数据库操作了。

推荐的腾讯云相关产品:腾讯云数据库MySQL、腾讯云数据库PostgreSQL、腾讯云数据库SQL Server等。您可以访问腾讯云官网了解更多产品信息:腾讯云数据库

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Hibernate配置文件

第一种:Java属性格式——Hibernate.properties 另外一种:xml格式——Hibernate.cfg.xml 实际开发中使用Hibernate.cfg.xml配置文件比較多,由于此种配置文件能够直接对映射文件进行配置...,并由Hibernate自己主动载入;而properties文件则必须在程序通过编码载入映射文件。...3,Hibernate.cfg.xml 经常使用属性: connection.url:数据库url; Connection.username:数据库用户名; Connection.password:数据库用户密码...取值true/false; Dialect:配置数据库的方言,依据底层的数据库不同产生不同的Sql语句,Hibernate会针对数据库的特性訪问时进行优化; Hbm2ddl.auto:启动停止时自己主动创建...JDBC的场合,既能够Java的client程序使用,也能够sevelet/jsp的web应用中使用

60420

Maven 整合 SSH 框架

前面的一系列文章,我们总结了三大框架:Struts2,HibernateSpring 的基本知识。本篇就姑且尝试着使用 Maven 这个项目构建工具来将这三个框架整合一起。...原先我们是通过 IDE 来完成这样的工作,但是不同的 IDE 有不同的使用操作,但是如果你是 Maven 项目的话,无论你在哪种 IDE 编码,都可以使用相同的 Maven 命令进行上述的几种操作,这其实在一定程度上减少了我们对...第二步,创建 Hibernate 核心配置文件 hibernate.cfg.xml 并完成基本信息的配置。 ?.../bean> 接下来 struts.xml 引用该 bean 即可。...这里的报错上述的原因是一样的,Action 要依赖 Service ,所以我们只要为其添加 Service 的引用即可

1.2K100

Hibernate【与Spring整合】

前言 前面已经学习了如何使用Spring与Struts2进行整合,本博文主要讲解如何使用SpringHibernate进行整合 SpringHibernate整合的关键点: SessionFactory...对象交给Spring来创建 Hibernate的事务交给Spring进行管理 ---- SpringHibernate整合步骤 引入jar包 连接池/数据库驱动包 Hibernate相关jar Spring...因此我们加载Hibernate的主配置文件又使用Spring的数据库连接池 也就是说,一部分配置hibernate.cfg.xml,一部分配置Spring文件 <!...这里写图片描述 ---- 配置文件全写Spring【推荐】 上面我们一部分是加载Hibernate的主配置文件,一部分是使用Spring配置文件的数据库连接池…这样不好…我们应该在Spring对其进行同一的管理...---- Spring管理事务 到目前为止,我们是使用Hibernate编程式事务控制管理,SpringHibernate整合另一个关键就是使用SpringHibernate进行事务管理 <

69340

【框架】构架知识点详解入门与测试实例

对象关系数据是业务实体的两种表现形式,业务实体在内存中表现为对象,在数据库中表现为关系数据。内存的对象之间存在关联继承关系,而在数据库,关系数据无法直接表达多对多关联继承关系。...mysql-connector-java-5.1.39 .zip下载地址: –>点击下载数据库5.1.39驱动包– 第2步:src创建配置文件hibernate.cfg.xml,放置src...会话工厂缓存了生成的SQL语句Hibernate在运行时使用的映射元数据。...它也保存了一个工作单元读入的数据并且可能在以后的工作单元中被重用(只有类集合映射指定了使用这种二级缓存时才会如此)Session类。...之所以这样设计是能让开发者能够使用一个统一事务的操作界面,使得自己的项目可以不同的环境容器之间方便地移值。

40220

spring 配置sessionFactory及用法

spring 配置sessionFactory及用法 方法一: 1、Spring的applicationContext.xml配置bean <!...然而,产生以上异常的原因在于Spring提供了自己的CurrentSessionContext实现,如果我们不打算使用Spring,而是自己直接从hibernate.cfg.xml创建SessionFactory...,并且为hibernate.cfg.xml 设置current_session_context_class为thread,也即使用了ThreadLocalSessionContext,那么我们调用...没有Spring的情况下使用Hibernate,如果没有hibernate.cfg.xml配置current_session_context_class,有没有JTA的话,那么程序将抛出”No CurrentSessionContext...Spring使用Hibernate,如果我们配置了TransactionManager,那么我们就不应该调用SessionFactory的openSession()来获得Sessioin,因为这样获得的

64020

手把手教你搭建SSH框架(Eclipse版)

开始教程之前,先来了解SSH框架的基本概念: 文章《手把手教你搭建SSM框架(Eclipse版)》已经对Spring、SpringMVC做了详细介绍,若需了解请点击链接查看,这里只对Hibernate...Hibernate可以应用在任何使用JDBC的场合,既可以Java的客户端程序使用,也可以Servlet/JSP的Web应用中使用。 看完以上概念,我们就正式开始今天的教程了。...手动导入会存在Jar包版本冲突等很多问题,建议直接下载使用公众号【C you again】后台回复“Jar”自行下载,若不能正常下载,请在后台私信。 ?...,继续resources文件夹下新建hibernate.cfg.xml、dbconfig.properties、log4j.properties三个文件。...> 修改hibernate.cfg.xml,添加配置: <?

85340

SSH 框架总结与整合 | Spring学习笔记

AOP 责任链模式; 自定义拦截器: Spring Spring 核心配置文件: 名称位置没有固定要求; Spring 核心配置文件引入 Schema 约束....使用 ServletContext 对象监听器实现 服务器启动时,加载 Spring 配置文件,创建对象; 配置 Spring 的监听器; 指定 Spring 配置文件位置....无hibernate.cfg.xml的整合 Spring 配置文件下配置数据库信息,及整合 Hibernate。...> 核心配置文件 引入 映射配置文件: Spring 配置文件已引入映射配置文件,故不需要再单独配置 hibernate.cfg.xml。...-- | 将原 Spring 的部分配置放置到独立 xml , | 例如我把 Dao 层的配置独立出来,再到 spring.xml 引入配置文件 dao.xml 即可

68920

Hibernate技术都不清楚,你敢说你自己会ORM框架?

它提供了概念性的、易于理解的数据模型,将数据库的表内存的对象建立了很好的映射关系。Java中常用的ORM框架主要有两个:HibernateiBatis。...Hibernate是什么 Hibernate是一个非侵入式ORMapping框架 ❝非侵入式框架:我们使用这个框架的时候,不需要继承或者实现这个框架的类或者接口,这种类型的框架就叫做非侵入式的框架,...非侵入式的框架在使用的时候更好的原有的框架实现了解耦 侵入式框架:我们使用这个框架的时候,需要继承或者实现这个框架的某些类或者接口,这种框架叫做侵入式框架 ❞ ORMapping解析 ❝O:Object...Hibernate的简单使用 「简单使用:」 导包,将下载下来的required+jpa相关的包放到一个文件里面 src下面创建hibernate.cfg.xml配置文件 <?...hibernate.cfg.xml配置文件的详解 <?

50020

SpringHibernate3集成

下图显示,Spring的DAO模板(DAO Template)定义了公共的DAO管道代码(如连接的开关事务的开关),对于特定任务(如执行不同的SQL语句)则调用自定义DAO的回调对象(Java的委托使用接口来实现...通过下面示例可以看到,使用了HibernateTemplate类的“模板方法”简化后的DAO开发,我们无需关心Session如何获取及其Transaction如何提交,只需要编写核心的数据访问代码即可(...>4.2.5.RELEASE                  (2)Spring配置SessionFactory         此前,我们使用hibernate.cfg.xml...,而hibernate.cfg.xml则可以去掉。        ...Spring+Hibernate整合使用OpenSessionInView,只要在web.xml配置以下过滤器即可(红字部份)。 <!

72330

Hibernate学习笔记1

对象关系数据是业务实体的两种表现形式,业务实体在内存中表现为对象,在数据库中表现为关系数据。内存的对象之间存在关联继承关系,而在数据库,关系数据无法直接表达多对多关联继承关系。...,它很大程度的简化了dao层编码工作 Hibernate是企业级开发主流框架。...位置:src下创建一个hibernate.cfg.xml 约束: ? 约束文件所在位置:hiberante核心jar包下的org.hibernate包下 ? ? 在这个文件如何配置?...核心配置文件配置 对于hibernate的核心配置文件它有两种方式: hibernate.cfg.xml hibernate.properties 我们开发中使用比较多的是hibernate.cfg.xml...1.我们要导入c3p0的相关jar包 hibernate/lib/options下有关于c3p0连接池jar包 2.hibernate.cfg.xml文件配置c3p0连接 可以查看etc/hibernate.properties

1.4K60

SSH框架整合教程

Spring是设计层面的框架,负责管理整合Struts2,Hibernate,或者说的直接一点就是创建Struts2Hibernate需要用到的对象。...按照这个思路,SSH框架可以这么理解:由Spring创建对象,Struts2Hibernate从IOC容器获取需要的对象,进行调用,完成业务需求。...同时将hibernate.cfg.xmlhbm.xml配置文件注入到sessionFactory bean,这样Spring的IOC就会根据此配置生成对应的sessionFactory对象供Hibernate...的IOC容器来创建,所有直接将IOC容器的classesController对象与URL映射即可。...代码写到这里,我们只是使用Spring的IOC,AOP并没有使用到,AOP到底应用在哪里?项目中的事务管理会交给Spring的AOP来完成。 spring.xml添加事务管理配置。 <?

95610
领券