Spring框架的两个简化XML配置文件的p-namespace和c-namespace

Spring框架的模块化设计,出现了大量的命名空间。应用开发过程中用到的模块,才需要引入对应的命名空间。

Spring框架的丰富功能,导致了Spring框架的XML配置文件十分复杂。这里要介绍的是两个特殊的命名空间,其出现只是为了简化XML配置文件的编写,并未提供应用所需的逻辑功能。

1. p-namespace
在XML配置文件中,首先引入如下命名空间:
xmlns:p="http://www.springframework.org/schema/p"
然后,在对应的<bean>中,使用p:属性(具体名称可定制),而非子元素<property>,以配置其所依赖的其他Spring Bean
示例如下:

<bean name="my_classicBean" class="com.example.ExampleBean">
    <property name="email" value="foo@bar.com"/>
</bean>

   等价于:

<bean name="my_p-namespaceBean" class="com.example.ExampleBean" p:email="foo@bar.com"/>
注意对比上述示例,特别是p:email属性的用法。
    
2. c-namespace(Spring 3.1及以后出现)
在XML配置文件中,首先引入如下命名空间:
xmlns:c="http://www.springframework.org/schema/c"
然后,在对应的<bean>中,以<bean>的c:属性(具体名称可定制),而非子元素<constructor-arg>,配置其所依赖的其他Spring Bean
示例如下:

<bean id="bar" class="x.y.Bar"/>
<bean id="baz" class="x.y.Baz"/>
<bean id="foo" class="x.y.Foo">
    <constructor-arg ref="bar"/>
    <constructor-arg ref="baz"/>
    <constructor-arg value="foo@bar.com"/>
</bean>

   等价于:

<bean id="bar" class="x.y.Bar"/>
<bean id="baz" class="x.y.Baz"/>
<bean id="foo" class="x.y.Foo" c:bar-ref="bar" c:baz-ref="baz" c:email="foo@bar.com"/>

注意对比上述示例,特别是c:bar-ref, c:baz-ref和c:emial属性的用法。



  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
好的,下面是整合步骤: 1. 添加 Mybatis 和 Spring 的相关依赖包,可以在 Maven 中添加以下依赖: ```xml <!-- Mybatis 依赖 --> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.5.7</version> </dependency> <!-- Spring 依赖 --> <!-- Spring 核心依赖 --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <version>5.2.12.RELEASE</version> </dependency> <!-- Spring 上下文依赖 --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>5.2.12.RELEASE</version> </dependency> <!-- Spring JDBC 依赖 --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-jdbc</artifactId> <version>5.2.12.RELEASE</version> </dependency> ``` 2. 在 Spring 配置文件中添加 Mybatis 和数据库连接相关配置,如下: ```xml <!-- 数据库连接配置 --> <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> <property name="driverClassName" value="com.mysql.cj.jdbc.Driver"/> <property name="url" value="jdbc:mysql://localhost:3306/mybatis?useSSL=false&serverTimezone=UTC"/> <property name="username" value="root"/> <property name="password" value="123456"/> </bean> <!-- Mybatis SqlSessionFactory 配置 --> <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="dataSource"/> <property name="configLocation" value="classpath:mybatis-config.xml"/> </bean> <!-- Mybatis Mapper 扫描配置 --> <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> <property name="basePackage" value="com.example.mapper"/> </bean> ``` 3. 编写 Mybatis 的配置文件 mybatis-config.xml,配置 Mybatis 相关参数,如下: ```xml <?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"> <configuration> <settings> <setting name="cacheEnabled" value="true"/> </settings> <typeAliases> <package name="com.example.entity"/> </typeAliases> <mappers> <mapper resource="mapper/UserMapper.xml"/> </mappers> </configuration> ``` 4. 编写 Mapper 接口和对应的 XML 文件,如下: UserMapper.java ```java public interface UserMapper { User getUserById(Long id); } ``` UserMapper.xml ```xml <?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 namespace="com.example.mapper.UserMapper"> <resultMap id="userMap" type="com.example.entity.User"> <id column="id" property="id"/> <result column="username" property="username"/> <result column="password" property="password"/> </resultMap> <select id="getUserById" resultMap="userMap"> SELECT * FROM user WHERE id = #{id} </select> </mapper> ``` 5. 在代码中通过 Spring 的 IoC 容器获取 Mapper 对象并调用方法,如下: ```java @Autowired private UserMapper userMapper; public User getUserById(Long id) { return userMapper.getUserById(id); } ``` 以上就是整合 Mybatis 和 Spring 的基本步骤。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值