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的包和模板引擎和代码生成器的包

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

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

搭建成功结果:

原文地址:https://www.cnblogs.com/mvpmvp/p/13467191.html