`

读取 jpa 的配置文件.添加自己的属性.

    博客分类:
  • java
阅读更多

 

package com.freewebsys.sns.common;

import java.io.IOException;
import java.io.InputStream;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.Enumeration;
import java.util.Iterator;

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;

import org.dom4j.Document;
import org.dom4j.DocumentFactory;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
import org.xml.sax.SAXNotRecognizedException;
import org.xml.sax.SAXNotSupportedException;

public class SysConfUtil {

	/**
	 * @param args
	 * @throws MalformedURLException
	 */
	public static void main(String[] args) throws MalformedURLException {
		// TODO Auto-generated method stub
		System.out.println(getConfigValue("mail.host"));
		// System.out.println(getConfigValue("mail.username"));
	}

	private static Document document = null;

	static {
		Enumeration<URL> xmls;
		SAXReader reader = new SAXReader(DocumentFactory.getInstance());
		try {
			xmls = Thread.currentThread().getContextClassLoader()
					.getResources("META-INF/persistence.xml");
			if (xmls.hasMoreElements()) {
				URL configURL = xmls.nextElement();
				document = reader.read(configURL.openStream());
			}
		} catch (Exception e) {
			System.out.println("加载配置失败:" + e.getMessage());
		}
		// System.out.println(document.selectSingleNode("@name=mail.host"));
	}

	@SuppressWarnings("unchecked")
	public static String getConfigValue(String name) {
		System.out.println(document.getRootElement().getName());
		// /*[name()='persistence']/*[name()='persistence-unit']/*[name()='properties']/*[name()='property']
		// 得到根节点
		Element root = document.getRootElement();
		// 得到persistenceUnit
		Element persistenceUnit = root.element("persistence-unit");
		// 得到下面的属性
		Element properties = persistenceUnit.element("properties");
		// 对属性进行循环,找到自定义的配置
		for (Iterator<Element> i = properties.elementIterator("property"); i
				.hasNext();) {
			Element property = i.next();
			if (property.attributeValue("name") != null
					&& property.attributeValue("name").equals(name)) {
				// 如果有这个属性返回value
				return property.attributeValue("value");
			}
		}
		return "";
	}
}

 经过 测试 可以读取 配置文件.并且 打成 jar 包之后 也可以读取到配置文件.

 

在 properties 下面添加 自己的属性就 property

 

就可以读取了..比如我添加了. 邮件的配置.

0
0
分享到:
评论

相关推荐

    Spring Data JPA初使用 .doc

    - **Spring配置文件**:在XML配置文件中,需要配置JPA的属性,如`&lt;jpa:repositories&gt;`元素定义Repository的基包,`&lt;bean&gt;`定义数据源、entityManagerFactory和transactionManager。 - **Application上下文**:如果...

    Spring Data JPA文档.zip

    配置方面,Spring Data JPA需要在配置文件中声明数据源、JPA供应商(如Hibernate)、实体扫描路径等。XML配置可以通过`&lt;jpa:repositories&gt;`元素定义Repository的基包,以及`&lt;bean&gt;`标签来配置DataSource和...

    Mybatis和JPA区别表格详细比较.docx

    - JPA 提供了自动建表的能力,通过配置 `spring.jpa.properties.hibernate.hbm2ddl.auto` 属性,如设置为 `update`,可以在启动应用时根据实体类自动更新数据库结构。 2. **动态 SQL 支持**: - Mybatis 允许在 ...

    jpademo.zip

    首先,`pom.xml`是Maven项目的配置文件,它包含了项目依赖和构建设置。在这个项目中,`pom.xml`很可能列出了JPA相关的库,比如Hibernate或EclipseLink作为实现JPA的提供者。通常,我们会看到如下的依赖项: ```xml ...

    springdatajpa.zip

    本示例项目已成功测试,只需根据自己的数据库环境修改相应配置,即可快速搭建起一个功能完备的Spring Data JPA应用。这为开发者提供了方便快捷的方式来管理数据库操作,使他们能更专注于业务逻辑的实现。

    springboot集成jpa代码,自动生成表

    其中,`spring.jpa.hibernate.ddl-auto`属性决定了数据库的自动管理策略,`update`表示启动时更新已有表结构,如果表不存在则创建。 3. **创建实体类** 创建Java类作为数据库表的映射,使用`@Entity`注解标记,...

    Springboot中使用JPA操作数据库

    然后在Spring Boot的配置文件`application.properties`或`application.yml`中,设置数据库连接信息: ```properties spring.datasource.url=jdbc:mysql://localhost:3306/mydb spring.datasource.username=root ...

    Springboot读取本地json文件工程

    在本文中,我们将深入探讨如何在Spring Boot应用中读取本地JSON文件,这是一个常见的后端开发任务,尤其在处理配置数据或进行数据测试时。Spring Boot以其简洁的配置和强大的功能,使得Java开发者能轻松地构建微服务...

    springboot jpa的使用案例_02.zip

    在SpringBoot项目中,通过application.properties或application.yml配置文件,我们可以轻松地配置JPA连接到MySQL数据库。配置包括数据库URL、用户名、密码以及驱动类等。JPA的实体类通常对应于数据库中的表,使用...

    springboot-jpa

    首先,我们需要在项目的`pom.xml`或`build.gradle`文件中添加Spring Data JPA和数据库驱动的依赖。例如,如果选择使用MySQL,那么在`pom.xml`中添加如下依赖: ```xml &lt;groupId&gt;org.springframework.boot ...

    JPA环境搭建及基础映射

    3. **实体扫描**:确保Spring Boot知道在哪里寻找实体类,可以通过在配置文件中指定包名: ```properties spring.data.jpa.entity.packages-to-scan=com.example.entity ``` 4. **启动应用**:完成上述步骤后,...

    jpa最基本最全配置的jar包

    以下是一些关于JPA配置和使用的知识点: 1. **配置JPA**: 配置JPA通常涉及在`persistence.xml`文件中指定持久化单元(Persistence Unit),其中包括数据库连接信息、持久化提供者、实体类等。例如: ```xml ...

    Jpa 依赖包

    3. **配置持久化单元**:在配置文件(如persistence.xml)中,指定数据源、JPA供应商(Hibernate)、实体类等信息。 4. **初始化EntityManagerFactory**:使用持久化单元信息创建EntityManagerFactory,它是JPA的...

    spring-boot-06-data-jpa.zip

    Spring Boot默认集成了多种数据库连接池,如HikariCP、Tomcat JDBC等,只需在配置文件中指定即可。 8. 扩展性与性能优化: Spring Data JPA支持分页查询、排序、关联查询等功能。同时,通过调整JPA配置,如缓存策略...

    Maven版的JPA最佳实践

    首先,确保你的Maven项目配置正确,包括`pom.xml`文件中的依赖管理。添加JPA和相关库(如Hibernate、EclipseLink等)的依赖项,例如: ```xml &lt;groupId&gt;org.springframework.boot &lt;artifactId&gt;spring-boot-...

    spring data jpa入门实例

    在 Spring 的配置文件中,需要配置 JPA 的数据源、事务管理器以及 Repository 扫描路径。例如: ```xml &lt;bean id="entityManagerFactory" class="org.springframework.orm.jpa....

    Spring Data JPA入门项目01

    这通常在Maven或Gradle的配置文件中完成。例如,在Maven的`pom.xml`中,我们需要添加Spring Boot的父依赖和Spring Data JPA依赖: ```xml &lt;groupId&gt;org.springframework.boot &lt;artifactId&gt;spring-boot-starter-...

    JPA框架jar包

    4. **持久化单元(Persistence Unit)**:在`persistence.xml`配置文件中定义,它指定了要使用的数据库连接信息、JPA供应商、实体类等,是JPA配置的核心。 5. **查询语言(JPQL)**:JPA提供了一种面向对象的查询...

    springboot2.0+jpa+mysql

    `application.properties` 文件中,我们需要配置数据库连接的相关信息,如 `spring.datasource.url`、`spring.datasource.username`、`spring.datasource.password` 以及 `spring.jpa.hibernate.ddl-auto` 等属性,...

    JPA.rar_JAVAEE系统_JavaEE_Javaee jpa_订单管理

    这个“JPA.rar”压缩包文件包含了一个基于JPA实现的订单管理系统的源代码,这为我们提供了一个学习和理解JPA实际应用的实例。 JPA的主要目标是简化数据访问层的开发,通过对象关系映射(ORM)技术将Java对象与关系...

Global site tag (gtag.js) - Google Analytics