在本文中,我们将带你了解从SpringMVCXML文件移动到javaconfig。我的数据库XML文件真的让我迷茫了在这篇文章中,我们将为您详细介绍从SpringMVCXML文件移动到javaconf
在本文中,我们将带你了解从Spring MVC XML文件移动到javaconfig。我的数据库XML文件真的让我迷茫了在这篇文章中,我们将为您详细介绍从Spring MVC XML文件移动到javaconfig。我的数据库XML文件真的让我迷茫了的方方面面,并解答spring-mvc.xml配置常见的疑惑,同时我们还将给您一些技巧,以帮助您实现更有效的Ajax实现xml文件数据插入数据库(一)--- 构建解析xml文件的js库、Cocos2d-x tinyxml2用于xml的解析,自动生成xml文件和解析xml文件、IDEA中快速创建xml文件(含mybatis-config.xml、XxxMapeer.xml)、java – 如何动态更新另一个xml文件中的xml文件?。
本文目录一览:- 从Spring MVC XML文件移动到javaconfig。我的数据库XML文件真的让我迷茫了(spring-mvc.xml配置)
- Ajax实现xml文件数据插入数据库(一)--- 构建解析xml文件的js库
- Cocos2d-x tinyxml2用于xml的解析,自动生成xml文件和解析xml文件
- IDEA中快速创建xml文件(含mybatis-config.xml、XxxMapeer.xml)
- java – 如何动态更新另一个xml文件中的xml文件?
从Spring MVC XML文件移动到javaconfig。我的数据库XML文件真的让我迷茫了(spring-mvc.xml配置)
我从Spring MVC XML文件移动到javaconfig。我的数据库XML文件真的让我迷茫了。我不知道如何使Hibernate4工作以及我的JBoss
JNDI数据源工作。有人可以告诉我如何使javaconfig类像这种XML一样工作。
这是我的database.xml:
?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xmlns:tx="http://www.springframework.org/schema/tx" xmlns:jdbc="http://www.springframework.org/schema/jdbc" xmlns:jee="http://www.springframework.org/schema/jee" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd http://www.springframework.org/schema/jdbc http://www.springframework.org/schema/jdbc/spring-jdbc-3.0.xsd http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-3.0.xsd"> <context:property-placeholder location="classpath:app.properties" /> <context:component-scan base-package="org.uftwf" /> <tx:annotation-driven transaction-manager="hibernateTransactionManager" /> <jee:jndi-lookup id="dataSource" jndi-name="java:jboss/datasources/mySQLDB" expected-type="javax.sql.DataSource" /> <bean id="sessionFactory"> <property name="dataSource" ref="dataSource" /> <property name="annotatedClasses"> <list> <value>org.uftwf.inquiry.model.MemberInquiryInformation</value> </list> </property> <property name="hibernateProperties"> <props> <prop key="hibernate.dialect">${hibernate.dialect}</prop> <prop key="hibernate.show_sql">${hibernate.show_sql}</prop> <prop key="hibernate.use_sql_comments">${hibernate.use_sql_comments}</prop> <prop key="format_sql">${format_sql}</prop> </props> </property> </bean> <bean id="hibernateTransactionManager"> <property name="sessionFactory" ref="sessionFactory" /> </bean></beans>
这是我的javaconfig类:
@Configuration@EnableWebMvc@ComponentScan(basePackages= {"org.uftwf.inquiry"})@ImportResource("/WEB-INF/spring/root-config.xml")public class WebMVCConfig extends WebMvcConfigurerAdapter { private static final String MESSAGE_SOURCE = "/WEB-INF/classes/messages"; private static final Logger logger = LoggerFactory.getLogger(WebMVCConfig.class); @Value("${jdbc.driverClassName}") private String driverClassName; @Value("${jdbc.url}") private String url; @Value("${jdbc.username}") private String username; @Value("${jdbc.password}") private String password; @Value("${hibernate.dialect}") private String hibernateDialect; @Value("${hibernate.show_sql}") private String hibernateShowSql; @Value("${hibernate.hbm2ddl.auto}") private String hibernateHbm2ddlAuto; @Bean public PropertyPlaceholderConfigurer getPropertyPlaceholderConfigurer() { PropertyPlaceholderConfigurer ppc = new PropertyPlaceholderConfigurer(); ppc.setLocation(new ClassPathResource("application.properties")); ppc.setIgnoreUnresolvablePlaceholders(true); return ppc; } @Bean() public DataSource getDataSource() { DriverManagerDataSource ds = new DriverManagerDataSource(); ds.setDriverClassName(driverClassName); ds.setUrl(url); ds.setUsername(username); ds.setPassword(password); return ds; } @Bean public LocalSessionFactoryBean sessionFactory() { LocalSessionFactoryBean factoryBean = new LocalSessionFactoryBean(); factoryBean.setDataSource(getDataSource()); factoryBean.setHibernateProperties(getHibernateProperties()); factoryBean.setPackagesToScan("org.uftwf.inquiry.model"); return factoryBean; } @Bean public Properties getHibernateProperties() { Properties hibernateProperties = new Properties(); hibernateProperties.setProperty("hibernate.dialect", hibernateDialect); //hibernateProperties.setProperty("hibernate.show_sql", "true"); //hibernateProperties.setProperty("hibernate.format_sql", "true"); hibernateProperties.setProperty("hibernate.hbm2ddl.auto", "update"); hibernateProperties.setProperty("javax.persistence.validation.mode", "none"); //Audit History flags hibernateProperties.setProperty("org.hibernate.envers.store_data_at_delete", "true"); hibernateProperties.setProperty("org.hibernate.envers.global_with_modified_flag", "true"); return hibernateProperties; } @Bean @Autowired public HibernateTransactionManager transactionManager(SessionFactory sessionFactory) { HibernateTransactionManager htm = new HibernateTransactionManager(); htm.setSessionFactory(sessionFactory); return htm; } @Bean public ViewResolver resolver() { UrlBasedViewResolver url = new UrlBasedViewResolver(); url.setPrefix("/WEB-INF/view/"); url.setViewClass(JstlView.class); url.setSuffix(".jsp"); return url; } @Bean(name = "messageSource") public MessageSource configureMessageSource() { logger.debug("setting up message source"); ReloadableResourceBundleMessageSource messageSource = new ReloadableResourceBundleMessageSource(); messageSource.setBasename(MESSAGE_SOURCE); messageSource.setCacheSeconds(5); messageSource.setDefaultEncoding("UTF-8"); return messageSource; } @Bean public LocaleResolver localeResolver() { SessionLocaleResolver lr = new SessionLocaleResolver(); lr.setDefaultLocale(Locale.ENGLISH); return lr; } @Override public void addResourceHandlers(ResourceHandlerRegistry registry) { logger.debug("setting up resource handlers"); registry.addResourceHandler("/resources/").addResourceLocations("/resources/**"); } @Override public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) { logger.debug("configureDefaultServletHandling"); configurer.enable(); } @Override public void addInterceptors(final InterceptorRegistry registry) { registry.addInterceptor(new LocaleChangeInterceptor()); } @Bean public SimpleMappingExceptionResolver simpleMappingExceptionResolver() { SimpleMappingExceptionResolver b = new SimpleMappingExceptionResolver(); Properties mappings = new Properties(); mappings.put("org.springframework.web.servlet.PageNotFound", "p404"); mappings.put("org.springframework.dao.DataAccessException", "dataAccessFailure"); mappings.put("org.springframework.transaction.TransactionException", "dataAccessFailure"); b.setExceptionMappings(mappings); return b; } @Bean public RequestTrackerConfig requestTrackerConfig() { RequestTrackerConfig tr = new RequestTrackerConfig(); tr.setPassword("Waiting#$"); tr.setUrl("https://uftwfrt01-dev.uftmasterad.org/REST/1.0"); tr.setUser("root"); return tr; }}
我认为我缺少的部分如下,但请多检查我的课
<context:property-placeholder location="classpath:app.properties" /> <context:component-scan base-package="org.uftwf" /> <tx:annotation-driven transaction-manager="hibernateTransactionManager" /> <jee:jndi-lookup id="dataSource" jndi-name="java:jboss/datasources/mySQLDB" expected-type="javax.sql.DataSource" />
答案1
小编典典对于
<tx:annotation-driven transaction-manager="hibernateTransactionManager" />
注释你的配置类,WebMVCConfig
与
@EnableTransactionManagement
对于
<context:component-scan base-package="org.uftwf" />
将Package String添加到您的@ComponentScan
字段basePackages
对于
<context:property-placeholder location="classpath:app.properties" />
注释您的Configuration类
@PropertySource(value = "classpath:app.properties")
然后做你的PropertyPlaceholderConfigurer
@Bean
方法static
。
对于
<jee:jndi-lookup id="dataSource" jndi-name="java:jboss/datasources/mySQLDB" expected-type="javax.sql.DataSource" />
我想你可以做
@Beanpublic DataSource dataSource() throws Exception { Context ctx = new InitialContext(); return (DataSource) ctx.lookup("java:jboss/datasources/mySQLDB");}
无需自动装配会话工厂,只需调用您的@Bean
方法
@Beanpublic HibernateTransactionManager transactionManager(){ HibernateTransactionManager htm = new HibernateTransactionManager(); htm.setSessionFactory(sessionFactory()); return htm;}
Ajax实现xml文件数据插入数据库(一)--- 构建解析xml文件的js库
Ajax实现将xml文件数据插入数据库的过程所涉及到的内容比较多,所以对于该过程的讲解本人打算根据交互的过程将其分为三个部分,第一部分为构建解析xml文件的javascript库,第二部分为ajax与jsp的数据交互,第三部分为javabean实现数据的插入。本文为该过程的第一部分即构建解析xml文件的javascript库。
本文以以下xml文件为例进行解析:
对于以上xml文件的解析涉我们分四种不同的情况进行:
(1)取得第任意个标签名为nodeName下的子标签名为childNodeName的值。该函数中nodeName为任意标签名,xmlName为需要解析的xml文件的路径,childNodeName为nodeName下的子标签名,nodeNo指的是第几个nodeName。以上面的xml文件为例,如果我们想要获取第一个标签名为userId标签下的userName标签下的值,那么我们调用该方法所输入的参数应该为:readOneLable("userId","authority.xml,"userName",0),返回结果为一个数组,该数组中盛放的数据便是“john“
(2)取得标签名为nodeName下的所有子标签名为childNodeName的值。该函数中nodeName为任意标签名,xmlName为需要解析的xml文件的路径,childNodeName为nodeName下的子标签名。以以上xml文件为例,我们需要获取userId标签下的所有userName标签的值,那么我们调用该方法传入的参数为:readAllLable("authority.xml","userId","userName"),调用该方法返回的结果为一个数组,盛放的内容为”jhon“,"jim","mat"。
至此,简单的解析xml文件的js库构建完毕,可以根据自己的需要通过调用不同的方法来取得相应节点的值。在下一篇文章中将会介绍使用ajax与jsp进行数据交互。
Ajax实现xml文件数据插入数据库(二)---ajax实现与jsp的数据交互。
Ajax实现xml文件数据插入数据库(三)---javaBean实现数据库插入。
Cocos2d-x tinyxml2用于xml的解析,自动生成xml文件和解析xml文件
Cocos2d-x 已经加入了tinyxml2
用于xml的解析。3.0版本位于external/tinyxml2
下。2.x版本位于cocos2dx/support/tinyxml2
下
生成xml文档
-
引入头文件
#include "tinyxml2/tinyxml2.h" using namespace tinyxml2;
-
xml文档生成
void HelloWorld::makeXML(constchar *fileName) { std::string filePath = FileUtilsgetInstance()->getWritablePath()+ fileName; XMLDocumentpDoc newXMLDocument(); //xml 声明(参数可选)XMLDeclarationpDel pDoc->NewDeclaration("xml version=\"1.0\" encoding=\"UTF-8\""); pDocLinkEndChild(pDel//添加plist节点XMLElementplistElement NewElement"plist" plistElementSetAttribute"version","1.0"plistElementXMLCommentcommentElement NewComment"this is xml comment"commentElement//添加dic节点dicElement "dic"dicElement//添加key节点keyElement "key" keyElementpDocNewText"Text")); dicElementkeyElementarrayElement "array"arrayElementforint i 0 i<3++) elm "name" elm"Cocos2d-x" arrayElementelm}SaveFilefilePath.c_str());Printdelete}
-
打印结果
<?xml version="1.0" encoding"UTF-8"?> <plist version="1.0"><!--this is xml comment--><dic> <key>Text</key><array> <name>Cocos2d-x</name></array></dic></plist>
上面代码使用tinyxml简单生成了一个xml文档。
解析xml
下面我们就来解析上面创建的xml文档
- ;
-
xml解析
parseXMLXMLError errorId LoadFileiferrorId != //xml格式错误 returnrootEle RootElement//获取第一个节点属性XMLAttributeattribute rootEleFirstAttribute//打印节点属性名和值 log"attribute<em>name = %s,attribute</em>value = %s" attributeName(),102)">Value());</p>dicEle FirstChildElementkeyEle dicElekeyEle log"keyEle Text= %s" keyEleGetTextarrayEle NextSiblingElementchildEle arrayElewhile childEle "childEle Text= %s" childEle childEle }
在节点解析过程中,注意对获取到的节点进行判空处理。
-
解析结果打印
cocos2d: attribute_name versionattribute_value 1.0 cocos2d keyEle TextText childEle Cocos2d-x cocos2dx
小结
上面的简单示例,演示了如何使用tinyxml进行xml文档生成和解析。更多详细的帮助请参考 tinyxml帮助文档http://grinninglizard.com/tinyxml2docs/index.html
源地址:http://www.tairan.com/archives/7340
IDEA中快速创建xml文件(含mybatis-config.xml、XxxMapeer.xml)
参考链接:IDEA中怎么创建xml文件_大海知天空的博客-CSDN博客_idea如何创建xml文件
1.File---Settings---Editor---File and Code Templates---Files
2.点击Files下面的“+”,新建一个文件命名为mybatis-config,后缀名为xml,添加下面代码后,勾选Enable Live Templates,依次点击Apply、OK,完成设置
模板代码:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd" > <!--配置mybatis环境--> <configuration> <!--配置连接使用的相关参数 default为默认使用的环境:development 测试环境 product 生产环境 --> <environments default="development"> <!--测试环境--> <environment id="development"> <!--事务管理类型:指定事务管理的方式 JDBC--> <transactionManager type="JDBC"/> <!--数据库连接相关配置,动态获取config.properties文件里的内容--> <!--数据源类型:POOLED 表示支持JDBC数据源连接池 UNPOOLED 表示不支持数据源连接池 JNDI 表示支持外部数据源连接池 --> <dataSource type="POOLED"> <!--此处使用的是MysqL数据库,使用Oracle数据库时需要修改,仔细检查各项参数是否正确,里面配置了时区、编码方式、SSL,用以防止中文查询乱码,导致查询结果为null及SSL警告等问题--> <property name="driver" value="com.MysqL.cj.jdbc.Driver"/> <property name="url" value="jdbc:MysqL://localhost:3306/mybatis?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC&useSSL=false"/> <property name="username" value="root"/> <property name="password" value="123456"/> </dataSource> </environment> </environments> <!--注册mapper配置文件(mapper文件路径配置) 注意:映射配置文件位置要和映射器位置一样,如:映射器在com.mycode.dao里, 那么配置文件就应该在resources的com/mycode/dao目录下,否则会报 Could not find resource com.mycode.dao.UserMapper.xml类似错误 --> <mappers> <!--下面编写mapper映射文件↓↓↓↓↓ 参考格式:<mapper resource="dao/UserMapper.xml"/> --> </mappers> </configuration>
3.在新建MyBatis配置文件mybatis-config.xml时,可以使用mybatis-config进行快速创建
创建效果如下:
4.同理,可创建mapper映射文件XxxMapper.xml,设置方法与上面类似,点击Files下面的“+”,新建一个文件命名为XxxMapper,后缀名为xml,添加下面代码后,勾选Enable Live Templates,依次点击Apply、OK,完成设置
模板代码:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" > <!-- mapper为映射的根节点,用来管理DAO接口 namespace指定DAO接口的完整类名,表示mapper配置文件管理哪个DAO接口(包.接口名) mybatis会依据这个接口动态创建一个实现类去实现这个接口,而这个实现类是一个Mapper对象 --> <mapper namespace="包名.类名"> <!-- id = "接口中的方法名" parameterType = "接口中传入方法的参数类型" resultType = "返回实体类对象:包.类名" 处理结果集 自动封装 注意:sql语句后不要出现";"号 查询:select标签 增加:insert标签 修改:update标签 删除:delete标签 --> </mapper>
创建方式:
java – 如何动态更新另一个xml文件中的xml文件?
我想从另一个xml文件更新一个xml文件.我使用了一个xml文件,如下所示:
one.xml
<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent" android:background="#00BFFF">
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical">
<LinearLayout
android:id="@+id/linearLayout1"
android:layout_width="fill_parent"
android:layout_height="wrap_content" android:gravity="center" android:visibility="visible">
</LinearLayout>
<LinearLayout
android:id="@+id/linearLayout2"
android:layout_width="fill_parent"
android:layout_height="wrap_content" android:gravity="center" android:visibility="visible">
</LinearLayout>
</LinearLayout>
</ScrollView>
two.xml如下:
<?xml version='1.0' encoding='utf-8' standalone='yes' ?>
<map>
<int name="linearLayout1" value="8" />
<int name="linearLayout2" value="0" />
</map>
从上面两个xml文件我想改变一个属性值. xml什么时候
如果
<int name ="linearLayout1" value = "8"/>
从two.xml然后我想更新one.xml文件,因为LinearLayout android:id =“@ id / linearLayout1”然后将属性值更改为android:visibility =“gone”.
解决方法:
这是你想要的代码
DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder docBuilder = docFactory.newDocumentBuilder();
Document doc = docBuilder.parse("/home/riddhish/developerworkspace/SplitString/src/com/updatexmlwithjava/two.xml");
DocumentTraversal traversal = (DocumentTraversal) doc;
Node a = doc.getDocumentElement();
NodeIterator iterator = traversal.createNodeIterator(a, NodeFilter.SHOW_ELEMENT, null, true);
/ **
*检查逻辑
** /
boolean flag=false;
for (Node n = iterator.nextNode(); n != null; n = iterator.nextNode()) {
Element e = (Element) n;
if ("int".equals(e.getTagName())) {
if(e.getAttribute("name").equals("linearLayout1")){
if(e.getAttribute("value").equals("8"))
flag=true;
}
}
}
/ **
*读取one.xml并设置android:visibility =“gone”的逻辑
** /
docFactory = DocumentBuilderFactory.newInstance();
docBuilder = docFactory.newDocumentBuilder();
doc = docBuilder.parse("/home/riddhish/developerworkspace/SplitString/src/com/updatexmlwithjava/one.xml");
traversal = (DocumentTraversal) doc;
a = doc.getDocumentElement();
iterator = traversal.createNodeIterator(a, NodeFilter.SHOW_ELEMENT, null, true);
for (Node n = iterator.nextNode(); n != null; n = iterator.nextNode()) {
Element e = (Element) n;
if ("LinearLayout".equals(e.getTagName())) {
if(e.getAttribute("android:id").equals("@+id/linearLayout1")){
if(flag==true){
System.out.println(""+e.getAttribute("android:visibility"));
e.setAttribute("android:visibility", "gone");
}
}
}
}
/ **
*重写one.xml的逻辑
** /
TransformerFactory transformerFactory = TransformerFactory.newInstance();
Transformer transformer = transformerFactory.newTransformer();
DOMSource source = new DOMSource(doc);
StreamResult result = new StreamResult(new File("/home/riddhish/developerworkspace/SplitString/src/com/updatexmlwithjava/one.xml"));
iterator = traversal.createNodeIterator(a, NodeFilter.SHOW_ELEMENT, null, true);
doc = docBuilder.newDocument();
Element rootElement = doc.createElement("ScrollView");
doc.appendChild(rootElement);
for (Node n = iterator.nextNode(); n != null; n = iterator.nextNode()) {
rootElement.appendChild(doc.importNode(n, true));
}
transformer.transform(source, result);
今天关于从Spring MVC XML文件移动到javaconfig。我的数据库XML文件真的让我迷茫了和spring-mvc.xml配置的分享就到这里,希望大家有所收获,若想了解更多关于Ajax实现xml文件数据插入数据库(一)--- 构建解析xml文件的js库、Cocos2d-x tinyxml2用于xml的解析,自动生成xml文件和解析xml文件、IDEA中快速创建xml文件(含mybatis-config.xml、XxxMapeer.xml)、java – 如何动态更新另一个xml文件中的xml文件?等相关知识,可以在本站进行查询。
本文标签: