GVKun编程网logo

spring 配置文件上面的命名空间和规范复习(spring配置文件名字)

16

如果您对spring配置文件上面的命名空间和规范复习感兴趣,那么本文将是一篇不错的选择,我们将为您详在本文中,您将会了解到关于spring配置文件上面的命名空间和规范复习的详细内容,我们还将为您解答s

如果您对spring 配置文件上面的命名空间和规范复习感兴趣,那么本文将是一篇不错的选择,我们将为您详在本文中,您将会了解到关于spring 配置文件上面的命名空间和规范复习的详细内容,我们还将为您解答spring配置文件名字的相关问题,并且为您提供关于.dbml(数据类)在不同的命名空间和文件中、c – 在另一个命名空间中是否使用等同于别名的命名空间?、C++ 函数命名中的命名空间和作用域有何区别?、Facade 包装类 -- 解决视图里面长长的命名空间调用问题 spring命名空间 qq空间命名 全局命名空的有价值信息。

本文目录一览:

spring 配置文件上面的命名空间和规范复习(spring配置文件名字)

spring 配置文件上面的命名空间和规范复习(spring配置文件名字)

Spring配置文件xml头信息解析一

我们在使用Spring框架的时候首先要配置其xml文件,大量的头信息到底代表了什么呢,在这里总结下自己的理解。。。

这里是创建web工程时自带的xml文件头内容:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
        xmlns="http://xmlns.jcp.org/xml/ns/javaee" 
        xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee 
        http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">

这是我们配置的Spring头信息内容:

复制代码

<?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:context="http://www.springframework.org/schema/context"
    xmlns:aop="http://www.springframework.org/schema/aop"
    xmlns:tx="http://www.springframework.org/schema/tx"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
    http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
    http://www.springframework.org/schema/context
    http://www.springframework.org/schema/context/spring-context-3.0.xsd
    http://www.springframework.org/schema/tx
    http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
    http://www.springframework.org/schema/aop
    http://www.springframework.org/schema/aop/spring-aop-3.0.xsd">

复制代码

对比之下可以发现存在共性的是他们都有:声明为xml文件,版本为1.0,编码为utf-8,这些大家都容易理解。

可是xmlns:xsi.......;  xmlns......; xsi:schemaLocation......;这些配置代表了什么东东呢???

经过总结网上前辈的经验,在这里说一下自己的理解:

首先xml是一种严格的标记语言(相对于html来说),例如必须有结束标签等,另外大家知道,因为其严格的特点,并且可以根据个人的需要增加新的标签内容,常被用来用作项目的配置文件使用。

那么需要成为严格的xml标签语言就需要有其规则进行约束,我们新建的标准的xml文件包含了xmlns:xsi.......;  xmlns......; xsi:schemaLocation.....这些内容如上所示,xmlns=命名空间,xsi=xml-schema-instance(xml模板实例,标准的是这样来命名的,好官方),知道这些我们就知道标准的web.xml文件内容这些是什么了.

web.xml的头信息:

1.xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance声明该文件的内容可以使用xsi的标签库,

2.xmlns="http://xmlns.jcp.org/xml/ns/javaee"声明标签的使用范围是被javaee的开发使用的

3.xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee声明可以使用的标签库和对应的具体的标签库版本地址。

那么Spring的头信息也就是:

1.xmlns=http://www.springframework.org/schema/beans表示是spring beans的xml配置文件

2.xmlns:xsi;xmlns:context;xmlns:aop;xmlns:tx;声明可以使用标准的xml标签(xsi);也可以使用context;aop;tx等声明后的标签库的标签,即声明的xmlns:后的内容可以作为标签规则出现在xml文件中,没有包含在内的使用时会报错(作为一种严格的标记语言的特性)。

3.xsi-schemaLocation这是语法规则契约(xmlns也是;而xmlns:xsi只是声明标签的规则),=等号后面的内容就是引入的具体的标签库和对应的要在文本中使用的标签库具体版本规则的地址。

4.由于在xsi-schemaLocation中定义的是标签的属性等相关信息,xmlns:p中由于p命名空间的引入是为了简化属性property的书写格式,而p的属性是可变的,所以没有在xsi-schemaLocation中定义。

注意:在xsi-schemaLocation中最后一个http:.....与双引号”之间要有一个空格,否则会找不到地址报错。

 

以上,并不是所有的规范和命名空间,只要够用就行,下面导入一个自己的

<?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:jdbc="http://www.springframework.org/schema/jdbc" xmlns:jee="http://www.springframework.org/schema/jee"
       xmlns:tx="http://www.springframework.org/schema/tx" xmlns:jpa="http://www.springframework.org/schema/data/jpa"
       xmlns:aop="http://www.springframework.org/schema/aop"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
		http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.2.xsd
		http://www.springframework.org/schema/jdbc http://www.springframework.org/schema/jdbc/spring-jdbc-3.2.xsd
		http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-3.2.xsd
		http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.2.xsd
		http://www.springframework.org/schema/data/jpa http://www.springframework.org/schema/data/jpa/spring-jpa-1.2.xsd 
		http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsd"
       default-lazy-init="true">

    <description>Spring Configuration</description>

    <!-- 定义aspectj -->
    <aop:aspectj-autoproxy/>
    
    <!-- 使用annotation 自动注册bean,并检查@Required,@Autowired的属性已被注入 -->
    <context:component-scan base-package="com.minxin.me.backstage">
        <context:exclude-filter type="annotation"
                                expression="org.springframework.stereotype.Controller"/>
        <context:exclude-filter type="annotation"
                                expression="org.springframework.web.bind.annotation.ControllerAdvice"/>
    </context:component-scan>

    <!-- JSR303 Validator定义 -->
    <bean id="validator"/>
    <!-- 加载配置属性文件 -->
    <bean>
        <property name="locations">
            <list>
                <value>classpath*:/sys_config.properties</value>
            </list>
        </property>
    </bean>

	<bean id="tztService"></bean>
	
    <!-- PropertiesLoader定义 -->
    <bean id="proputil">
        <constructor-arg>
            <list>
                <value>validator-zrmx.properties</value>
                <value>sys_config.properties</value>
            </list>
        </constructor-arg>
    </bean>


    <!-- MyBatis配置 -->
    <bean id="sqlSessionFactory">
        <property name="dataSource" ref="dataSource"/>
        <!-- 自动扫描entity目录, 省掉Configuration.xml里的手工配置 -->
        <property name="typeAliasesPackage" value="com.minxin.me.backstage.core.mapper"/>
        <!-- 显式指定Mapper文件位置 -->
        <property name="mapperLocations" value="classpath:com/minxin/me/backstage/core/**/*Mapper.xml"/>

        <property name="plugins">

            <array>
                <bean>
                    <property name="properties">
                        <value>
                            dialect=oracle
                        </value>
                    </property>
                </bean>
            </array>
        </property>
    </bean>


    <!-- 配置自定义的SqlSessionTemplate模板,注入相关配置 -->
    <bean id="sqlSessionTemplate"scope="prototype">
        <constructor-arg index="0" ref="sqlSessionFactory"/>
    </bean>

    <!-- 扫描basePackage下所有以@MyBatisRepository标识的 接口 -->
    <bean>
        <property name="basePackage" value="com.minxin.me.backstage"/>
        <property name="sqlSessionTemplateBeanName" value="sqlSessionTemplate"/>
        <property name="annotationClass"
                  value="com.minxin.me.backstage.commons.MyBatisRepository"/>
    </bean>


    <!-- 数据源 -->
     <!-- <bean id="dataSource"destroy-method="close">
        <property name="driverClass" value="${jdbc.driver}"/>
        <property name="jdbcUrl" value="${jdbc.url}"/>
        <property name="user" value="${jdbc.username}"/>
        <property name="password" value="${jdbc.password}"/>
        <property name="acquireIncrement" value="${c3p0.acquireIncrement}"></property>
        <property name="initialPoolSize" value="${c3p0.initialPoolSize}"></property>
        <property name="maxIdleTime" value="${c3p0.maxIdleTime}"></property>
        <property name="maxPoolSize" value="${c3p0.maxPoolSize}"></property>
        <property name="minPoolSize" value="${c3p0.minPoolSize}"></property>
        <property name="acquireRetryDelay" value="1000"></property>
        <property name="acquireRetryAttempts" value="60"></property>
        <property name="breakAfterAcquireFailure" value="false"></property>
        <property name="maxStatements" value="${c3p0.maxStatements}"></property>
        <property name="maxStatementsPerConnection" value="${c3p0.maxStatementsPerConnection}"></property>
    </bean> -->
    <!-- <bean id="dataSource"destroy-method="close">
        <property name="driverClass" value="oracle.jdbc.driver.OracleDriver"/>
        <property name="jdbcUrl" value="jdbc:oracle:thin:@192.168.9.42:1521:ORA11G"/>
        <property name="user" value="ct_mefc_uta"/>
        <property name="password" value="K7ig0ywuKu"/>
        <property name="acquireIncrement" value="1"></property>
        <property name="initialPoolSize" value="20"></property>
        <property name="maxIdleTime" value="5"></property>
        <property name="maxPoolSize" value="50"></property>
        <property name="minPoolSize" value="5"></property>
        <property name="acquireRetryDelay" value="1000"></property>
        <property name="acquireRetryAttempts" value="60"></property>
        <property name="breakAfterAcquireFailure" value="false"></property>
        <property name="maxStatements" value="0"></property>
        <property name="maxStatementsPerConnection" value="50"></property>
    </bean> -->
	 <bean id="dataSource">
		<property name="jndiName"> <value>java:comp/env/jdbc/minxinMeFcDataSource</value>
		</property> </bean>
		
    <!-- 事务 -->
    <bean id="transactionManager">
        <property name="dataSource" ref="dataSource"/>
    </bean>
    <!-- 注解驱动事务管理 -->
    <tx:annotation-driven transaction-manager="transactionManager"/>

    <bean id="transactionInterceptor">
        <property name="transactionManager" ref="transactionManager"/>
        <!-- 配置事务属性 -->
        <property name="transactionAttributes">
            <props>
                <prop key="delete*">PROPAGATION_REQUIRED, -Exception</prop>
                <prop key="add*">PROPAGATION_REQUIRED, -Exception</prop>
                <prop key="update*">PROPAGATION_REQUIRED, -Exception</prop>
                <prop key="save*">PROPAGATION_REQUIRED, -Exception</prop>
                <prop key="*">PROPAGATION_REQUIRED,-Exception</prop>
            </props>
        </property>
    </bean>

<!-- 微服务配置开始 -->
	<beanlazy-init="false">
		<property name="executorMap">
			<map key-type="java.lang.String">
				<entry>
					<key>
						<value>cxf</value>
					</key>
					<ref bean="cxfExecutor"></ref>
				</entry>
			</map>
		</property>
	</bean>
	<bean id="cxfExecutor"lazy-init="false"></bean>
	<beaninit-method="init"  lazy-init="false">
		<!-- <property name="configUrl" value="${nhesb.config.url}"></property> -->
		<!-- <property name="remoteConfigFlag" value="true"></property> -->
		<property name="addressMap4Bean" ref="addressSysB"></property>
	</bean>
	<bean id="addressSysB"lazy-init="false">
		<property name="sysid" value="dicService"></property>
		<property name="ip" value="10.10.23.79"></property>
		<property name="port" value="8080"></property>
		<property name="url"
		value="https://www.minxineseal.com:8443/minxin-eseal/webservice/nhCmdService"></property>
	</bean>
	<!-- 微服务配置结束 -->

	<!-- 从Srping配置文件中根据id读取Bean的工具 -->
    <bean id="springUtil"scope="singleton" />
    <beanlazy-init="false"></bean>
    <beaninit-method="initGroovy" lazy-init="false">
        <property name="fileList">
            <list>
                <bean>
                    <property name="ruleStamp" value="true"></property>
                    <property name="jarFileFlag" value="true"></property>
                    <property name="dirFlag" value="true"></property>
                    <property name="rulePath" value="/groovy/"></property>
                </bean>
            </list>
        </property>
    </bean>
</beans>

 

.dbml(数据类)在不同的命名空间和文件中

.dbml(数据类)在不同的命名空间和文件中

如何解决.dbml(数据类)在不同的命名空间和文件中?

我是 LINQ to sql 的新手,需要一些帮助来分离数据类与对@R_301_6250@执行的 CRUD 操作。我需要从 .dbml 设计器文件中分离出数据类并将其移动到另一个命名空间,最好是在新文件中。

.dbml 文件的默认行为/解析捆绑了所有难以维护的数据类。

有什么办法可以解耦这个机制。

非常感谢有关此问题的任何帮助。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

c – 在另一个命名空间中是否使用等同于别名的命名空间?

c – 在另一个命名空间中是否使用等同于别名的命名空间?

考虑以下两个语句:
namespace foo = bar;

namespace foo {
  using namespace bar;
}

这两个陈述是否相当,还是有一些我不知道的细微差别?

(请注意,这不是编码风格的问题 – 我只是对C解析感兴趣).

解决方法

namespace foo=bar;

这不影响任何名称查找规则.唯一的影响是让’foo’别名为’bar’.例如:

namespace bar
{
  void b();
}

void f () {
  bar::b ();  // Call 'b' in bar
  foo::b ();  // 'foo' is an alias to 'bar' so calls same function
}

以下更改查找规则

namespace NS
{
  namespace bar
  {
  }

  namespace foo {
    using namespace bar;

    void f () {
      ++i;
    }
  }
}

当’i’进行查找时,首先搜索’foo’,然后再搜索’NS’,然后’bar’.

C++ 函数命名中的命名空间和作用域有何区别?

C++ 函数命名中的命名空间和作用域有何区别?

命名空间和作用域在 c++++ 中用于组织代码。命名空间防止名称冲突,而作用域限制标识符的可见性,从而确保清晰、可读的代码。命名空间按名称分组相关代码,而作用域限定标识符的可见性范围,包括局部(函数、块)和全局(整个程序)。

C++ 函数命名中的命名空间和作用域有何区别?

C++ 函数命名空间和作用域中的区别

在 C++ 中,命名空间和作用域对于组织和管理代码至关重要。它们之间的区别对于编写清晰易读的代码非常重要。

命名空间

命名空间为代码中的标识符(函数、类等)提供一个逻辑命名区域。它允许您将相关代码分组在一起,并防止不同部分代码中的名称冲突。

使用 namespace 关键字声明命名空间:

立即学习“C++免费学习笔记(深入)”;

namespace mySpace {
  // 函数、类等标识符
}
登录后复制

要使用命名空间中的标识符,必须使用 namespace:: 运算符:

mySpace::myFunction();
登录后复制

作用域

作用域是在其中声明标识符有效的代码块。作用域限制了标识符的可见性。

C++ 中有两种主要的作用域:

  • 局部作用域:在函数、块(大括号括起来的代码)或循环内声明的标识符。这些标识符仅在声明的作用域内可见。
  • 全局作用域:在全局名称空间内声明的标识符。这些标识符在整个程序中可见。

区别

命名空间是一种组织工具,而作用域是一种访问限制工具。

特征命名空间作用域
目的防止名称冲突,组织代码限制标识符的可见性
声明namespace不需要显式声明
访问限制没有
可见性范围整个程序或特定名称空间本地块或循环

实战案例

以下代码示例演示了命名空间和作用域的区别:

// myMath.h 头文件
namespace math {
  int add(int a, int b);
}

// main.cpp 文件
#include "myMath.h"

int main() {
  // 在全局作用域中访问 math 名称空间
  int sum = math::add(10, 20);
  return 0;
}

// myLib.cpp 文件
int add(int a, int b) {
  // 在本地作用域中声明同名的函数,发生名称冲突
  return a + b;
}
登录后复制

在这个示例中,myMath.h 头文件中声明了 math 命名空间和 add 函数。在 main.cpp 文件中,#include 指令将 myMath.h 的内容导入到全局作用域,允许访问 math 命名空间和 add 函数。

然而,在 myLib.cpp 文件中,add 函数在局部作用域中声明,与 math 命名空间中的 add 函数产生名称冲突。因此,在调用 myLib.cpp 中的 add 函数时,编译器将优先使用本地作用域中的版本。

以上就是C++ 函数命名中的命名空间和作用域有何区别?的详细内容,更多请关注php中文网其它相关文章!

Facade 包装类 -- 解决视图里面长长的命名空间调用问题 spring命名空间 qq空间命名 全局命名空

Facade 包装类 -- 解决视图里面长长的命名空间调用问题 spring命名空间 qq空间命名 全局命名空

有时候模版里面定义需要写很长的全路径类名,此处提供一个 简易的别名调用代码来规避此问题,缺点就是IDE 代码提示功能就没有了

<?php /**
 * Facade 包装类
 *
 * 优点:
 * 		使用简单的方式来省掉视图里面长长的命名空间调用,诸如 YII 的模版
 * 缺点:
 * 		这么写在 IDE 中会失去代码自动提示的功能,对于 sublime 狗而言貌似不是缺点
 *
 * 使用方法:
 * 		ZGFacade::{方法名}( {facade名称}, 参数1, 参数2,...参数n )
 * 
 * 
 * // 初始化
 * ZGFacade::setZGFacade(''form'', ''Aert_Form'');
 * ZGFacade::setZGFacade(''esClient'', ''\Elasticsearch\Client'');
 * 
 * // 使用demo
 * $form = ZGFacade::newInstance(''form'', ''frm2'', ''delete'');
 * dump($form);
 * 
 * echo ZGFacade::server(''form'', ''REQUEST_METHOD'');
 * echo ZGFacade::get(''form'', ''a'');
 * 
 * 	$dsn      = Config::get(''esken.dsn'');
 * 	$esClient = ZGFacade::newInstance(''esClient'', $dsn);
 * 	dump($esClient);
 * 
 * @author vb2005xu@qq.com
 */
final class ZGFacade
{
	private static $map = [
		''form''	=> ''Aert_Form''
	];

	public static function setZGFacade($alias, $class)
	{
		self::$map[ $alias ] = $class;
	}

	private static function __facade__($facade, $method, $arguments=[])
	{
		if ( is_object($facade) )
		{
			// 调用 对象方法
			return call_user_func_array( [$facade, $method], $arguments );
		}
		else if (is_string($facade))
		{
			if ( empty(self::$map[$facade]) )
			{
				throw new Exception("未定义 ''facade'': {$facade} ");
			}
			// 调用 静态方法
			if ( ''newInstance'' == $method )
	    	{
	    		$class = new ReflectionClass( self::$map[$facade] );
	    		return $class-&gt;newInstanceArgs( $arguments );
	    	}
			$class = self::$map[$facade];
			return call_user_func_array( [$class, $method], $arguments );
		}

		throw new Exception("无效 ''facade'' 调用!");
	}

	public function __call($method, $arguments) 
    {
    	$facade = array_shift($arguments);
    	return self::__facade__($facade, $method, $arguments);
    }

    public static function __callStatic($method, $arguments) 
    {
    	$facade = array_shift($arguments);    	
    	return self::__facade__($facade, $method, $arguments);
    }

}
登录后复制

以上就介绍了Facade 包装类 -- 解决视图里面长长的命名空间调用问题,包括了命名空间,acad方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

关于spring 配置文件上面的命名空间和规范复习spring配置文件名字的问题就给大家分享到这里,感谢你花时间阅读本站内容,更多关于.dbml(数据类)在不同的命名空间和文件中、c – 在另一个命名空间中是否使用等同于别名的命名空间?、C++ 函数命名中的命名空间和作用域有何区别?、Facade 包装类 -- 解决视图里面长长的命名空间调用问题 spring命名空间 qq空间命名 全局命名空等相关知识的信息别忘了在本站进行查找喔。

本文标签: