今天在使用mongodb时,使用springboot启动项目,手动配置了mongodb,但是日志中打印开启了两个mongodb的连接。
尤其是第二个是一个localhost:27017的url,我并没有配置本地的mongodb。
非常疑惑。
通过dubug发现,springboot自动配置了支持mongodb。在启动springboot时会自动实例化一个mongo实例。这不是我们想看到的。所以考虑禁用掉springboot的自动配置。
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.mongo.MongoAutoConfiguration;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
@SpringBootApplication (exclude = MongoAutoConfiguration. class )
public class Application extends WebMvcConfigurerAdapter{
public static void main(String[] args ) {
SpringApplication application = new SpringApplication();
application .run(Application. class );
}
}
@SpringBootApplication
(exclude = MongoAutoConfiguration.
class
):
这个注解可以禁用springboot自带的配置。
org.springframework.boot.autoconfigure.mongo.MongoAutoConfiguration这个类是springboot中对mongodb的自动配置。
spring-boot-autoconfigure-1.2.2.RELEASE.jar这个包里的配置是springboot的所有自动配置项。