maven的druid排除
时间: 2024-12-29 22:23:11 浏览: 11
### 如何在Maven项目的pom.xml文件中正确配置以排除Druid依赖
为了确保Maven项目不再使用特定版本的`druid`库,可以在父级`<dependencies>`标签内通过指定该依赖并加入`<exclusions>`来实现这一点。具体操作是在对应的依赖项内部定义要排除的内容。
当目标是移除某个具体的第三方库(如本例中的`druid`),可以按照如下方式修改`pom.xml`:
```xml
<dependency>
<groupId>com.example</groupId>
<artifactId>example-artifact</artifactId>
<version>1.0.0</version>
<!-- 排除 Druid -->
<exclusions>
<exclusion>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
</exclusion>
</exclusions>
</dependency>
```
上述代码片段展示了如何在一个已存在的依赖声明里添加`<exclusions>`部分,从而阻止传递性加载不必要的组件[^2]。
如果希望在整个工程范围内统一管理对外部包的控制,则可在顶级POM文档内的`<dependencyManagement>`节设置全局性的排除规则[^3]。
相关问题
java项目如何开启druid监控
开启 Druid 监控需要以下步骤:
1.添加 Druid 依赖
在 Maven 项目中,需要在 pom.xml 文件中添加以下依赖:
```xml
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.2.4</version>
</dependency>
```
2.配置 Druid 数据源
在 application.properties 或 application.yml 中,添加以下配置:
```yaml
spring:
datasource:
url: jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8&useSSL=false
username: root
password: root
driver-class-name: com.mysql.jdbc.Driver
type: com.alibaba.druid.pool.DruidDataSource
filters: stat
maxActive: 20
initialSize: 1
maxWait: 60000
minIdle: 1
timeBetweenEvictionRunsMillis: 60000
minEvictableIdleTimeMillis: 300000
testWhileIdle: true
testOnBorrow: false
testOnReturn: false
poolPreparedStatements: true
maxPoolPreparedStatementPerConnectionSize: 20
useGlobalDataSourceStat: true
connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000
```
其中,`filters` 配置了 Druid 的监控统计功能,`connectionProperties` 配置了 SQL 监控功能。
3.添加 Druid 监控 Servlet
在 Spring Boot 应用中,可以通过添加 ServletRegistrationBean 来添加 Druid 的监控 Servlet。在 Spring Boot 的配置类中添加以下代码:
```java
@Configuration
public class DruidConfig {
@Bean
public ServletRegistrationBean druidServlet() {
ServletRegistrationBean servletRegistrationBean = new ServletRegistrationBean(new StatViewServlet(), "/druid/*");
// IP 白名单
servletRegistrationBean.addInitParameter("allow", "127.0.0.1");
// IP 黑名单
servletRegistrationBean.addInitParameter("deny", "192.168.0.19");
// 控制台管理用户
servletRegistrationBean.addInitParameter("loginUsername", "admin");
servletRegistrationBean.addInitParameter("loginPassword", "admin");
// 是否可以重置数据源
servletRegistrationBean.addInitParameter("resetEnable", "false");
return servletRegistrationBean;
}
}
```
其中,`StatViewServlet` 是 Druid 提供的监控 Servlet,`/druid/*` 是访问路径,可以根据需要修改。
4.添加 Druid 监控 Filter
在 Spring Boot 应用中,可以通过添加 FilterRegistrationBean 来添加 Druid 的监控 Filter。在 Spring Boot 的配置类中添加以下代码:
```java
@Configuration
public class DruidConfig {
@Bean
public FilterRegistrationBean druidFilter() {
FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean(new WebStatFilter());
// IP 白名单
filterRegistrationBean.addInitParameter("allow", "127.0.0.1");
// IP 黑名单
filterRegistrationBean.addInitParameter("deny", "192.168.0.19");
// 监控路径
filterRegistrationBean.addUrlPatterns("/*");
// 排除不需要监控的文件类型
filterRegistrationBean.addInitParameter("exclusions", "*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*");
return filterRegistrationBean;
}
}
```
其中,`WebStatFilter` 是 Druid 提供的监控 Filter,`/*` 是需要监控的路径,`exclusions` 是需要排除的文件类型,可以根据需要修改。
5.访问 Druid 监控页面
在浏览器中访问配置的监控路径,在上一步中的例子中,访问 http://localhost:8080/druid/ 即可进入 Druid 的监控页面。在页面中可以查看数据源的使用情况、SQL 监控等信息。
<dependency> <groupId>com.alibaba</groupId> <artifactId>druid-spring-boot-starter</artifactId> <version>${druid.version}</version> <exclusions></exclusions> </dependency> <dependency> <groupId>org.apache.shardingsphere</groupId> <artifactId>sharding-jdbc-spring-boot-starter</artifactId> <version>4.1.1</version> </dependency> 检查并优化以上代码
以上代码是Maven中的依赖配置代码,第一个依赖是针对阿里巴巴的Druid数据库连接池,在Spring Boot项目中使用。第二个依赖是针对Apache ShardingSphere分库分表框架的Spring Boot Starter。
代码本身没有什么问题,但可以考虑进行以下优化:
1. 版本号的统一管理:将Druid和ShardingSphere的版本号统一管理,可以提升代码的可维护性和升级效率。
2. 排除冲突依赖:如果项目中已经存在了Druid和ShardingSphere的相关依赖,可以在配置时排除掉冲突的依赖,避免出现版本冲突等问题。
3. 按需引入依赖:如果项目中只需要使用Druid或ShardingSphere中的某一个,可以只引入需要的依赖,避免不必要的依赖增加项目体积。
4. 优化依赖顺序:将依赖按照优先级排序,可以减少不必要的依赖引入,提高项目启动效率。
示例代码:
```xml
<properties>
<druid.version>1.2.4</druid.version>
<sharding.version>4.1.1</sharding.version>
</properties>
<dependencies>
<!-- Druid数据库连接池 -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>${druid.version}</version>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</exclusion>
</exclusions>
</dependency>
<!-- ShardingSphere分库分表框架 -->
<dependency>
<groupId>org.apache.shardingsphere</groupId>
<artifactId>sharding-jdbc-spring-boot-starter</artifactId>
<version>${sharding.version}</version>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
```
阅读全文