springboot快速创建项目

 

 

第一部分

创建项目地址:https://start.spring.io/

选择好需要的jar包开始创建工程,然后将工程放到开发目录,解压,使用开发工具导入。开发工具首先要配置好maven

导入工程之后直接启动会报错,原因是新创建的项目没有配置数据源  所以在项目启动的时候回去查找项目的数据源,但是发现找不到所以报错。

解决方法

 配置属性:   @SpringBootApplication(exclude = DataSourceAutoConfiguration.class)

这样就可以启动成功了!!!!!!

第二部分

使用Druid数据源#

Apache Druid(Incubating) - 面向列的分布式数据存储,非常适合为交互式应用程序提供动力

虽然HikariDataSource性能非常高,但是阿里的druid数据源配有成套的数据源管理软件,开发中使用的更多。

以往我们都是直接引入Druid的依赖:

<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>druid</artifactId>
    <version>1.1.12</version>
</dependency>

但是面对这么火爆的springboot并没有直接对Druid的启动器而是需要我们自己整合,apache中4个月前已经出了一套完美支持springboot的方案所以说我们不使用上面的依赖而是使用:

源码下载:https://github.com/alibaba/druid/tree/master/druid-spring-boot-starter

<dependency>
   <groupId>com.alibaba</groupId>
   <artifactId>druid-spring-boot-starter</artifactId>
   <version>1.1.10</version>
</dependency>

配置properties文件,具体的参数配置可以去官网看看,这里只是简单的配置:

###本地地址
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/accumulatepoints?useUnicode=true&characterEncoding=UTF-8&serverTimezone=GMT%2B8&useSSL=false&useInformationSchema=true
spring.datasource.driverClassName=com.mysql.cj.jdbc.Driver
spring.datasource.username=root
spring.datasource.password=root

server.port=8080

#使用druid数据源
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource

#如果template没有文件控制台会有一条警告信息,加上这个配置便不会看到警告信息
spring.thymeleaf.check-template-location=false
#这个配置可让外部直接访问static里面的文件
spring.mvc.static-path-pattern=/static/**

虽然我们配置了druid连接池的其它属性,但是不会生效。因为默认是使用的java.sql.Datasource的类来获取属性的,有些属性datasource没有。如果我们想让配置生效,需要手动创建Druid的配置文件。

@ConfigurationProperties(prefix = "spring.datasource")
@Bean
public DruidDataSource druidDataSource(){
      return new DruidDataSource();
}

Druid的最强大之处在于它有着强大的监控,可以监控我们发送到数据库的所有sql语句。方便我们后期排插错误。

我们接着在DruidDataSource里面配置监控中心:

/**
 * 配置druid数据源
 */
@Configuration
public class DruidConfig {

    @ConfigurationProperties(prefix = "spring.datasource")
    @Bean
    public DataSource druid(){
        return new DruidDataSource();
    }

    /**
     * 配置监控服务器
     * @return 返回监控注册的servlet对象
     * @author liwenfei
     */
    @Bean
    public ServletRegistrationBean statViewServlet(){
        ServletRegistrationBean bean = new ServletRegistrationBean(new StatViewServlet(), "/druid/*");
        Map<String,String> initParams = new HashMap<>();
        // 添加IP白名单
        initParams.put("allow","");//默认就是允许所有访问

        // 添加IP黑名单,当白名单和黑名单重复时,黑名单优先级更高
        //initParams.put("deny","127.0.0.0");
        // 是否能够重置数据
        //initParams.put("resetEnable","false");
        // 添加控制台管理用户
        // initParams.put("loginUsername","admin");
        // initParams.put("loginPassword","123456");
        bean.setInitParameters(initParams);
        return bean;
    }

    /**
     * 配置服务过滤器
     * @return 返回过滤器配置对象
     * @author liwenfei
     */
    @Bean
    public FilterRegistrationBean webStatFilter(){
        FilterRegistrationBean bean = new FilterRegistrationBean();
        bean.setFilter(new WebStatFilter());
        bean.addUrlPatterns("/*"); // 添加过滤规则
        bean.addInitParameter("exclusions", "*.js,*.gif,*.jpg,*.png,*.css,*.ico,*.txt,/druid/*"); // 忽略过滤格式
        bean.addInitParameter("profileEnable", "true");
        bean.addInitParameter("principalCookieName","USER_COOKIE");
        bean.addInitParameter("principalSessionName","USER_SESSION");
        bean.addInitParameter("DruidWebStatFilter","/*");
        return bean;
    }
}


/**
 * 注:如果这里配置druid数据源,那么启动类可以不用配置exclude = DataSourceAutoConfiguration.class
 *
 */

注:配置spring拦截器详见

https://blog.csdn.net/qq_35071164/article/details/89738355

 

 

第三部分

引入thymeleaf依赖

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

在thymeleaf3.0以前对页面标签语法要求比较严格,开始标签必须有对应的结束标签。

如果希望页面语法不严谨,但是也能够运行成功,可以把thymeleaf升级为3.0或以上版本。


                
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值