zoukankan      html  css  js  c++  java
  • springboot环境的搭建

    1、创建maven项目,打包方式为jar,添加parent来统一子包的依赖。

    2、导包

    <parent>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-parent</artifactId>
            <version>2.1.15.RELEASE</version>
      </parent>
    <--!开箱即用,包含springmvc思想restful风格和tomcat-->
    <dependencies>
    <dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    </dependencies>

    3、创建启动类(启动web包中的springmvc和tomcat的应用)

    在类上加注解@SpringBootApplication

    会自动扫描此包下的所有子包。

    主函数中加入SpringApplication.run(APP.class);即可启动。

    4、创建配置文件来配置信息,文件名为application,类型有yml和properties两种形式,后者优先级较高

    可以配置端口号

    server:
      port: 80

    也可以配置日期格式

    spring:
      jackson:
        date-format: yyyy-MM-dd HH:mm:ss
        time-zone: GMT+8

    5、在ioc容器中声明消息转换器,覆盖默认的转换器(需要导入fastjson包)

    创建一个java配置类

    加@Configuration来变成配置类

    //配置Bean加点,方法上返回一个对象就能放入ioc了
    @Bean
      //消息转换器 HttpMessageConverters fastJsonMessage() { FastJsonHttpMessageConverter fastJsonHttpMessageConverter
    = new FastJsonHttpMessageConverter();
          //声明一个fastjson对象进行配置 FastJsonConfig fastJsonConfig
    = new FastJsonConfig();
    fastJsonConfig.setDateFormat(
    "yyyy-MM-dd HH:mm:ss"); fastJsonConfig.setCharset(Charset.forName("utf-8")); fastJsonConfig.setSerializerFeatures( SerializerFeature.PrettyFormat, SerializerFeature.WriteNullListAsEmpty,
              //如果是空list返回null SerializerFeature.WriteNullListAsEmpty,
              //处理对象的属性为对象的情况 SerializerFeature.WriteNullStringAsEmpty,SerializerFeature.DisableCircularReferenceDetect ); List
    <MediaType> list =new ArrayList<>(); list.add(MediaType.APPLICATION_JSON_UTF8); fastJsonHttpMessageConverter.setSupportedMediaTypes(list); fastJsonHttpMessageConverter.setFastJsonConfig(fastJsonConfig); return new HttpMessageConverters(fastJsonHttpMessageConverter);

    6、异常处理

    有两种处理的方式

    第一种是重写页面,在resource下的static下的error下的404或者500.html

    第二种就是处理异常

    写一个@ExceptionHandler注解,在其方法下处理异常,可以指定处理什么类型的异常,

    也可以同一处理

     @ExceptionHandler
        String exception(HttpServletRequest request,Exception e){
            return "异常了";
        }

    如果单独存在要加一个@ControllerAdvice注解,如果是前后端分离还要加@ResponseBody

    7、解决跨域问题

    问题在浏览器端,为了解决跨站访问的异常,提出了同源策略。

    先访问ajax在访问服务器返回到的头信息不对就会被拦截。

    @Bean
        CorsFilter corsFilter(){
            UrlBasedCorsConfigurationSource source=new UrlBasedCorsConfigurationSource();
            CorsConfiguration configuration=new CorsConfiguration();
        //允许所有的头信息和方法 configuration.addAllowedOrigin(
    "*"); configuration.addAllowedHeader("*"); configuration.addAllowedMethod("*"); source.registerCorsConfiguration("/**",configuration); return new CorsFilter(source); }

    8、配置数据库有两种常用的:

    1、集成mybatis

    mybatis中$和#的区别:

    #        insert  into  user(username,password)  values(#{username},?)

    有两个问号  分别注入值,能预编译,能有效防止sql注入。

    $        insert  into  user(username,password)  values('${username}',?)

    直接把值放过来,没有预编译,无法防止sql注入。值可能有脚本就会sql注入

    步骤:

    导包 hikari mybatis  mysql

    这里采用hikari数据源,需要配置数据库信息

    spring:
      datasource:
        driver-class-name: com.mysql.jdbc.Driver
        url: jdbc:mysql://127.0.0.1:3306/user?useUnicode=true&characterEncoding=utf8
        username: root
        password: 123456
        hikari:
          minimun-idle: 8
          max-lifetime: 20

    sqlsession自动配置,可以配置类的别名,为了方便

    mybatis:
      type-aliases-package: com.lyt.pojo

    扫包只需要加一个@MapperScan来扫包

    @MapperScan("com.lyt.dao")

    再配置一下日志,方便观察sql语句等信息。

    logging:
      level:
        com.lyt.dao: debug

    dao层和service和controller层还是基于ssm框架。

    2、mybatis-plus的集成

    首先导入baomidou的包

      <dependency>
                <groupId>com.baomidou</groupId>
                <artifactId>mybatis-plus-boot-starter</artifactId>
                <version>3.2.0</version>
            </dependency>
            <dependency>
                <groupId>org.freemarker</groupId>
                <artifactId>freemarker</artifactId>
                <version>2.3.30</version>
            </dependency>
            <dependency>
                <groupId>com.baomidou</groupId>
                <artifactId>mybatis-plus-generator</artifactId>
                <version>3.2.0</version>
            </dependency>

    其中分别为mybatis-plus的包和模板引擎和代码生成器的包

    然后我们就可以通过模板代码来根据数据库的表生成自己的代码,模板在苞米豆官网上是有的,

    最后同样配置一下数据源和扫描包即可。

    搭建成功结果:

  • 相关阅读:
    《ORANGE'S一个操作系统的实现》第7章 TTY与键盘输入的关系。
    《将博客搬至CSDN》
    x86汇编分页模式实验 --《ORANGE'S一个操作系统的实现》中 pmtest8.asm解析
    LR(1)语法分析器生成器(生成Action表和Goto表)java实现(二)
    LR(1)语法分析器生成器(生成Action表和Goto表)java实现(一)
    LeetCode 85. 冗余连接 II
    2397
    机器学习入门(九)之----logistic回归(牛顿法)
    机器学习入门(八)之----logistic回归(番外篇感知机算法)
    机器学习入门(七)之----logistic回归(回归函数与概率模型)
  • 原文地址:https://www.cnblogs.com/mvpmvp/p/13467191.html
Copyright © 2011-2022 走看看