SpringBoot项目的pom杂记

1、加载SpringBoot

  SpringBoot可以在pom文件中使用继承parent的方式,这种方式简便易用。

<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>2.1.1.RELEASE</version>
		<relativePath/>
</parent>

  但是这种方式parent就只能有一个,如果项目需要引进其他的parent,就不能用这种方式。可以参考以下的方式。

<dependencyManagement>
		<dependencies>
			<dependency>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-dependencies</artifactId>
				<version>2.1.1.RELEASE</version>
				<type>pom</type>
				<scope>import</scope>
			</dependency>
		</dependencies>
</dependencyManagement>

  departmentManagment,表示申明,并不会把jar包包进来。需要用到具体的依赖才会加载进来。

2、SpringBoot 数据库连接池

  SpringFrameWork JDBC 默认使用的是HikariCP连接池,这个是默认的。

<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>

  如果想换成其他的链接池可以用一下的方式,如使用alibaba的druid

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-jdbc</artifactId>
    <exclusions>
        <exclusion>
            <artifactId>HikariCP</artifactId>
            <groupId>com.zaxxer</groupId>
        </exclusion>
    </exclusions>
</dependency>
<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>druid-spring-boot-starter</artifactId>
    <version>1.1.10</version>
</dependency>

  但这只限于使用spring-boot-starter-jdbc,如果只是使用spring-jdbc那就不需要。spring-jdbc内部自动化配置连接池,会使用到druid。

<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-jdbc</artifactId>
    <version>5.1.3.RELEASE</version>
    <scope>compile</scope>
</dependency>
<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>druid-spring-boot-starter</artifactId>
    <version>1.1.10</version>
</dependency>

3、自定义SQL的错误码

  各个厂商SQL出错码是各不相同的,Spring整合了各个厂商的错误码,定义在sql-error-codes.xml文件中。根据spring-jdbc的SQLErrorCodesFactory中的定义。先导入Spring集成的错误码xml文件(org/springframework/jdbc/support/sql-error-codes.xml),然后再导入项目定义在 the root of the class path 的 sql-error-codes.xml。自定义的codes会覆盖Spring提供的codes中bean id相同的配置。
  如下是自定义sql-error-codes.xml的文件。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN 2.0//EN" "http://www.springframework.org/dtd/spring-beans-2.0.dtd">

<beans>
    <bean id="H2" class="org.springframework.jdbc.support.SQLErrorCodes">
        <property name="badSqlGrammarCodes">
            <value>42000,42001,42101,42102,42111,42112,42121,42122,42132</value>
        </property>
        <property name="duplicateKeyCodes">
            <value>23001,23505</value>
        </property>
        <property name="dataIntegrityViolationCodes">
            <value>22001,22003,22012,22018,22025,23000,23002,23003,23502,23503,23506,23507,23513</value>
        </property>
        <property name="dataAccessResourceFailureCodes">
            <value>90046,90100,90117,90121,90126</value>
        </property>
        <property name="cannotAcquireLockCodes">
            <value>50200</value>
        </property>
        <property name="customTranslations">
            <bean class="org.springframework.jdbc.support.CustomSQLErrorCodesTranslation">
                <property name="errorCodes" value="23001,23505" />
                <property name="exceptionClass"
                          value="com.demo.errorcodedemo.CustomDuplicatedKeyException" />
            </bean>
        </property>
    </bean>
</beans>
发布了63 篇原创文章 · 获赞 8 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/myt0929/article/details/105151768