You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shardingsphere.apache.org by GitBox <gi...@apache.org> on 2019/07/25 10:35:11 UTC

[GitHub] [incubator-shardingsphere] wslongchen removed a comment on issue #2763: Unable to locate Spring NamespaceHandler for XML schema namespace

wslongchen removed a comment on issue #2763: Unable to locate Spring NamespaceHandler for XML schema namespace
URL: https://github.com/apache/incubator-shardingsphere/issues/2763#issuecomment-514992444
 
 
   Here is my configuration information
   ···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:p="http://www.springframework.org/schema/p"
   	   xmlns:aop="http://www.springframework.org/schema/aop"
   	   xmlns:jpa="http://www.springframework.org/schema/data/jpa"
   	   xmlns:context="http://www.springframework.org/schema/context"
   	   xmlns:tx="http://www.springframework.org/schema/tx"
   	   xmlns:sharding="http://shardingsphere.apache.org/schema/shardingsphere/sharding"
   	   xsi:schemaLocation="http://www.springframework.org/schema/beans
                           http://www.springframework.org/schema/beans/spring-beans.xsd
                           http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.1.xsd
                           http://shardingsphere.apache.org/schema/shardingsphere/sharding
                           http://shardingsphere.apache.org/schema/shardingsphere/sharding/sharding.xsd
                           http://www.springframework.org/schema/context
                           http://www.springframework.org/schema/context/spring-context.xsd
       					http://www.springframework.org/schema/data/repository
       					http://www.springframework.org/schema/data/repository/spring-repository.xsd
          					http://www.springframework.org/schema/data/jpa http://www.springframework.org/schema/data/jpa/spring-jpa.xsd
          					http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.1.xsd">
   
   	<description>SpringJpa配置</description>
   
   	<!-- 定义实体管理器工厂 Jpa配置 LocalContainerEntityManagerFactoryBean这个选项Spring扮演了容器的角色。完全掌管JPA -->
   	<!-- 点我查看 spring生成EntityManagerFactory的三种方式 -->
   	<bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
   		<!-- 指定数据源 -->
   		<property name="dataSource" ref="shardingDataSource" />
   		<!-- 指定Jpa持久化实现厂商类,这里以Hibernate为例 -->
   		<property name="jpaVendorAdapter" ref="hibernateJpaVendorAdapter" />
   		<!-- 指定Entity实体类包路径 -->
   		<property name="packagesToScan">
   			<array>
   				<value>com.shby.tent.entity</value>
   			</array>
   		</property>
   		<!-- 指定JPA属性;如Hibernate中指定是否显示SQL的是否显示、方言等 -->
   		<property name="jpaProperties">
   			<props>
   				<prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
   				<prop key="hibernate.ejb.naming_strategy">org.hibernate.cfg.ImprovedNamingStrategy</prop>
   				<prop key="hibernate.cache.provider_class">org.hibernate.cache.NoCacheProvider</prop>
   				<prop key="hibernate.show_sql">true</prop>
   				<prop key="hibernate.format_sql">true</prop>
   			</props>
   		</property>
   	</bean>
   
   	<!-- 重要配置:启用扫描并自动创建代理的功能 <jpa:repositories base-package="com.service" transaction-manager-ref="transactionManager" entity-manager-factory-ref="entityManagerFactory" /> -->
   	<jpa:repositories base-package="com.shby.tent.repository" transaction-manager-ref="transactionManager" entity-manager-factory-ref="entityManagerFactory" />
   	<!-- Hibernate对Jpa的实现 -->
   	<bean id="hibernateJpaVendorAdapter" class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter" />
   
   	<!-- Jpa 事务管理器 -->
   	<bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">
   		<property name="entityManagerFactory" ref="entityManagerFactory" />
   	</bean>
   
   	<!-- 开启注解事务 -->
   	<tx:annotation-driven transaction-manager="transactionManager" proxy-target-class="true" />
   	<!-- 4.0.0-RC1 版本 负载均衡策略配置方式 -->
   	 <bean id="randomStrategy" class="org.apache.shardingsphere.core.strategy.masterslave.RandomMasterSlaveLoadBalanceAlgorithm" />
   	<!-- 数据源配置,使用应用内的DBCP数据库连接池 -->
   	<bean id="ds_master" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close">
   		<property name="url" value="${db.jdbcUrl}" />
   		<property name="username" value="${db.user}" />
   		<property name="password" value="${db.password}" />
   		<property name="initialSize" value="${db.initialSize}" />
   		<property name="minIdle" value="${db.minIdle}" />
   		<property name="maxActive" value="${db.maxActive}" />
   		<property name="maxWait" value="60000" />
   		<property name="timeBetweenEvictionRunsMillis" value="60000" />
   		<property name="minEvictableIdleTimeMillis" value="300000" />
   		<property name="validationQuery" value="SELECT 'x'" />
   		<property name="testWhileIdle" value="true" />
   		<property name="testOnBorrow" value="false" />
   		<property name="testOnReturn" value="false" />
   		<property name="poolPreparedStatements" value="true" />
   		<property name="maxPoolPreparedStatementPerConnectionSize" value="20" />
   		<property name="removeAbandoned" value="true" />
   		<property name="removeAbandonedTimeout" value="180" />
   		<property name="logAbandoned" value="true" />
   	</bean>
   
   	<bean id="ds_slave0" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close">
   		<property name="url" value="${db1.jdbcUrl}" />
   		<property name="username" value="${db1.user}" />
   		<property name="password" value="${db1.password}" />
   		<property name="initialSize" value="${db1.initialSize}" />
   		<property name="minIdle" value="${db1.minIdle}" />
   		<property name="maxActive" value="${db1.maxActive}" />
   		<property name="maxWait" value="60000" />
   		<property name="timeBetweenEvictionRunsMillis" value="60000" />
   		<property name="minEvictableIdleTimeMillis" value="300000" />
   		<property name="validationQuery" value="SELECT 'x'" />
   		<property name="testWhileIdle" value="true" />
   		<property name="testOnBorrow" value="false" />
   		<property name="testOnReturn" value="false" />
   		<property name="poolPreparedStatements" value="true" />
   		<property name="maxPoolPreparedStatementPerConnectionSize" value="20" />
   		<property name="removeAbandoned" value="true" />
   		<property name="removeAbandonedTimeout" value="180" />
   		<property name="logAbandoned" value="true" />
   	</bean>
   
   	<bean id="ds_slave1" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close">
   		<property name="url" value="${db2.jdbcUrl}" />
   		<property name="username" value="${db2.user}" />
   		<property name="password" value="${db2.password}" />
   		<property name="initialSize" value="${db2.initialSize}" />
   		<property name="minIdle" value="${db2.minIdle}" />
   		<property name="maxActive" value="${db2.maxActive}" />
   		<property name="maxWait" value="60000" />
   		<property name="timeBetweenEvictionRunsMillis" value="60000" />
   		<property name="minEvictableIdleTimeMillis" value="300000" />
   		<property name="validationQuery" value="SELECT 'x'" />
   		<property name="testWhileIdle" value="true" />
   		<property name="testOnBorrow" value="false" />
   		<property name="testOnReturn" value="false" />
   		<property name="poolPreparedStatements" value="true" />
   		<property name="maxPoolPreparedStatementPerConnectionSize" value="20" />
   		<property name="removeAbandoned" value="true" />
   		<property name="removeAbandonedTimeout" value="180" />
   		<property name="logAbandoned" value="true" />
   	</bean>
   	<sharding:inline-strategy id="databaseStrategy" sharding-column="tenant_id" algorithm-expression="ds_master" />
   	<sharding:inline-strategy id="tenantTableStrategy" sharding-column="tenant_id" algorithm-expression="tenant_info$->{tenant_id % 2}" />
   	<sharding:key-generator id="tenantKeyGenerator" type="SNOWFLAKE" column="tenant_id" />
   	<!--读写分离-->
   	<sharding:data-source id="shardingDataSource">
   		<sharding:sharding-rule data-source-names="ds_master,ds_slave1,ds_slave0">
   			<sharding:master-slave-rules>
   				<sharding:master-slave-rule id="ds_ms0" master-data-source-name="ds_master" slave-data-source-names="ds_slave0, ds_slave1" strategy-ref="randomStrategy" />
   			</sharding:master-slave-rules>
   			<sharding:table-rules>
   				<sharding:table-rule logic-table="tenant_info" actual-data-nodes="ds_master" database-strategy-ref="databaseStrategy" table-strategy-ref="tenantTableStrategy" key-generator-ref="tenantKeyGenerator" />
   			</sharding:table-rules>
   			<sharding:binding-table-rules>
   				<sharding:binding-table-rule logic-tables="tenant_info" />
   			</sharding:binding-table-rules>
   			<sharding:broadcast-table-rules>
   				<sharding:broadcast-table-rule table="t_config" />
   			</sharding:broadcast-table-rules>
   		</sharding:sharding-rule>
   	</sharding:data-source>
   
   	<tx:advice id="txAdvice" transaction-manager="transactionManager">
   		<tx:attributes>
   			<tx:method name="insert*" propagation="REQUIRED" rollback-for="java.lang.Throwable,java.lang.Exception" />
   			<tx:method name="add*" propagation="REQUIRED" rollback-for="java.lang.Throwable,java.lang.Exception" />
   			<tx:method name="save*" propagation="REQUIRED" rollback-for="java.lang.Throwable,java.lang.Exception" />
   			<tx:method name="update*" propagation="REQUIRED" rollback-for="java.lang.Throwable,java.lang.Exception" />
   			<tx:method name="delete*" propagation="REQUIRED" rollback-for="java.lang.Throwable,java.lang.Exception" />
   			<tx:method name="del*" propagation="REQUIRED" rollback-for="java.lang.Throwable,java.lang.Exception" />
   			<tx:method name="retrive*" propagation="REQUIRED" rollback-for="java.lang.Throwable,java.lang.Exception" />
   			<tx:method name="query*" propagation="REQUIRED" rollback-for="java.lang.Throwable,java.lang.Exception" />
   			<tx:method name="getCurrentSeqId" propagation="REQUIRED" rollback-for="java.lang.Throwable,java.lang.Exception" />
   			<tx:method name="remove*" propagation="REQUIRED" rollback-for="java.lang.Throwable,java.lang.Exception" />
   			<tx:method name="get*" read-only="true" />
   			<tx:method name="select*" read-only="true" />
   			<tx:method name="find*" read-only="true" />
   			<tx:method name="list*" read-only="true" />
   			<tx:method name="load*" read-only="true" />
   			<tx:method name="lazy*" read-only="true" />
   			<tx:method name="calc*" read-only="true" />
   			<tx:method name="search*" read-only="true" />
   			<tx:method name="export*" read-only="true" />
   			<tx:method name="check*" read-only="true" />
   		</tx:attributes>
   	</tx:advice>
   
   	<aop:config>
   		<aop:pointcut id="allManagerMethod" expression="execution(* com.shby.tent.service.*.*(..))" />
   		<aop:advisor pointcut-ref="allManagerMethod" advice-ref="txAdvice" />
   	</aop:config>
   
   </beans>
   ···

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
users@infra.apache.org


With regards,
Apache Git Services