尽览Springboot从入门到精通的泣血心酸

本文详细介绍了SpringBoot的使用,包括基础理论、集成JSP、Mybatis、SpringMVC,实现RESTful接口,整合Redis和Dubbo,应用拦截器,程序打包,日志管理以及Servlet和过滤器的使用,全面覆盖了SpringBoot的核心功能。
摘要由CSDN通过智能技术生成

一、基础理论 

1、产生背景
    SSM开发web应用配置复杂,springboot极大地简化了配置,让开发人员更多关注与业务逻辑的实现。

2、Springboot特性
    A。能够快速创建基于spring的应用程序。
    B。java main方法可启动内嵌的tomcat服务器来运行springboot程序,不需要部署war包文件。
    C。起步依赖简化maven配置。
    D。根据maven依赖自动配置spring、springmvc。
    E。完全弃用XML配置,采用注解配置。

3、Springboot四大核心
    自动配置:自动配置spring、springmvc。
    起步依赖:起简化maven配置。
    Actutor:健康检查,检测程序运行状况,一般用不到。
    命令化界面:一般也用不到。

    一般只用得到前两种。

4、springboot零碎知识点
resources目录下:
    static:存放图片、js、cs等静态资源。
    templates:存放前端模板。
    application.properties:springboot核心配置文件。

  SpringBootApplication:
        springboot项目入口类中的核心注解,没有该注解,该入口类就是普通的java类。
    注意:
        springboot项目的所有代码类必须在入口类同级或下一级的目录位置。

5、springboot核心配置文件
    可以是*.properties文件,也可以是*.yml(*.ymal)文件,都是键值对形式
    两个同时存在,以*.properties为准
    *.yml虽然也是键值对形式,但是书写格式还是有不同的,用到的时候百度
    配置文件常用做法:
        application-dev.properties:开发环境配置文件
        application-tes.properties:测试环境配置文件
        application-pro.properties:生产环境配置文件
        然后在application.properties中设置:
            spring.profiles.active=dev   //表明当前生效的是开发环境的配置文件

6、自定义配置
A、将自定义配置映射到属性
aplication.properties中:
    #自定义配置,将配置的属性自动注入到属性中
    name=lily
    age=18
代码中:
    @Value("${name}")  //自动注入配置文件的中name的值
    private String name;
    @Value("${age}") //自动注入配置文件的中age的值
    private  int age;

    //获取自动注入的属性值,打印在前台
    @RequestMapping(value="intro")
    @ResponseBody
    public String intro(){
        return "I'm "+name+","+age+" years old!!";
    }
    
B、将自定义配置映射到对象
aplication.properties中:
    #自定义配置,将配置的对象属性自动注入到属性中
    school.name=CAUC
    school.address=Tianjin
对应配置类:
    @Component  //将此类交给Spring容器进行管理,方便诸如对象
    @ConfigurationProperties(prefix = "school") //本类只读取配置文件中前缀为school的属性
    public class School {
        private String name;
        private String address;

        public String getName() {
            return name;
        }
        public void setName(String name) {
            this.name = name;
        }
        public String getAddress() {
        return address;
        }
        public void setAddress(String address) {
        this.address = address;
        }
}
代码中:
    @Autowired //自动注入对象
    private School school;

    //获取自动注入的对象的属性值,打印在前台
    @RequestMapping(value="intro2")
    @ResponseBody
    public String intro2(){
        return school.getName()+" is a university in "+school.getAddress();
    } 



7、注意事项
ConfigurationProperties警告:
    
    在使用@ConfigurationProperties注解时,会报一个警告:
        Spring Boot Configuration Annotation Processor not Configured。算该警告不影响运行,但看着烦,如何解决??
    解决方式,在pom.xml文件中添加如下依赖即可:
        <dependency>
             <groupId>org.springframework.boot</groupId>
             <artifactId>spring-boot-configuration-processor</artifactId>
             <optional>true</optional>
         </dependency>


application.properties中文乱码问题 :
    见图片A

二、Springboot集成jsp

1、前置设置:
  main-->new-->directory-->webapp(创建web资源文件夹)
  file-->project structure-->modules-->找到该项目-->web-->将刚刚创建的webapp设置为web资源文件路径
    具体见图B 

2、添加jsp依赖
        <!--引入springboot内嵌tomcat对jsp的解析依赖,不引入不能解析jsp-->
        <!--如果要使用jstl\el还需要引入其他的依赖才行-->
        <dependency>
            <groupId>org.apache.tomcat.embed</groupId>
            <artifactId>tomcat-embed-jasper</artifactId>
        </dependency>

3、指定jsp文件编译路径
在<build>标签中添加:
        <!--执行jsp文件编译路径-->
        <resources>
            <resource>
                <!--源文件夹-->
                <directory>src/main/webapp</directory>
                <!--目标文件夹-->
                <targetPath>META-INF/resources</targetPath>
                <includes>
                    <!--源文件夹所有内容均要被编译-->
                    <include>*.*</include>
                </includes>
            </resource>
        </resources>

4、设置SpringMC的视图解析器
    在web项目的目录中,只有web-inf是对外不可见的,为了安全性,我们需要将所有静态资源放在web-inf
目录下,然后以请求转发的方式跳转到目标资源。但是浏览器访问还是紧接着的请求转发跳转web-inf目录下的
资源时,路径太长,故需要配置视图解析器定义前后缀来简化书写。
aplication.properties中:
    #配置springmvc的视图解析器
    spring.mvc.view.prefix=/
    spring.mvc.view.suffix=.jsp
webapp/show1.jsp文件:
    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <html>
    <head>
        <title>show1.jsp</title>
    </head>
    <body>
        <H1>${message}</H1>
    </body>
webapp/show2.jsp文件:
    </html>
    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <html>
    <head>
        <title>show2.jsp</title>
    </head>
    <body>
        <H1>${message}</H1>
    </body>
    </html>
代码中:
    /*
    视图解析器
     */
    @RequestMapping(value="show1")
    public ModelAndView show1(){//ModelAndView可以返回一个jsp页面,且可用来设置jsp内容
        ModelAndView model=new ModelAndView();
        model.addObject("message","hello,springboot");
        model.setViewName("show1");
        return model;
    }
    @RequestMapping(value="show2")
    public String show2(Model model){
        model.addAttribute("message","hello2,springboot");
        return "show2";
    }


三、springboot集成mybatis

1、修改pom.xml文件
        <!--集成mybatis,需要添加mysql依赖-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
        </dependency>
        <!--springboot集成mybatis的起步依赖,版本号自己加-->
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>2.0.0</version>
        </dependency>

2、利用mybatis的逆向工程对单表生成实体bean、映射文件、mapper接口
在项目根目录新建文件GeneratorMapper.xml,添加如下内容:

    <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE generatorConfiguration
        PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
        "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">
<!--dtd文件报红没关系-->
<generatorConfiguration>


    <!-- 指定连接数据库的JDBC驱动包所在位置,指定到你本机的完整路径 -->
    <classPathEntry location="G:\SoftwareInstall\maven\apache-maven-3.3.9\repository\mysql-connector-java-5.1.38.jar"/>

    <!-- 配置table表信息内容体,targetRuntime指定采用MyBatis3的版本 -->
    <context id="tables" targetRuntime="MyBatis3">
    <!-- 抑制生成注释,由于生成的注释都是英文的,可以不让它生成 -->
        <commentGenerator>
            <property name="suppressAllComments" value="true" />
        </commentGenerator>
        <!-- 配置数据库连接信息 -->
        <jdbcConnection driverClass="com.mysql.jdbc.Driver"
                        connectionURL="jdbc:mysql://localhost:3306/d_student"
                        userId="root"
                        password="123456">
        </jdbcConnection>
    <!--三个重要的生成器-->
        <!-- 生成model类(实体类),targetPackage指定model类的包名, targetProject指定生成的model放在eclipse的哪个工程下面-->
        <javaModelGenerator targetPackage="com.farben.springboot.model" targetProject="src/main/java">
            <property name="enableSubPackages" value="false" />
            <property name="trimStrings" value="false" />
        </javaModelGenerator>

        <!-- 生成MyBatis的Mapper.xml文件,targetPackage指定mapper.xml文件的包名, targetProject指定生成的mapper.xml放在eclipse的哪个工程下面 -->
        <sqlMapGenerator targetPackage="com.farben.springboot.mapper" targetProject="src/main/java">
            <property name="enableSubPackages" value="false" />
        </sqlMapGenerator>

        <!-- 生成MyBatis的Mapper接口类文件,targetPackage指定Mapper接口类的包名, targetProject指定生成的Mapper接口放在eclipse的哪个工程下面 -->
        <javaClientGenerator type="XMLMAPPER" targetPackage="com.farben.springboot.mapper" targetProject="src/main/java">
            <property name="enableSubPackages" value="false" />
        </javaClientGenerator>

        <!--表名和实体类名 -->
        <table tableName="t_student"
               domainObjectName="Student"
               enableCountByExample="false"
               enableUpdateByExample="
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

二百四十九先森

你的打赏是我努力的最大动力~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值