Springboot杂

传统搭建spring web项目:(麻烦)

1)配置web.xml,加载spring和spring mvc

2)配置数据库连接、配置spring事务

3)配置加载配置文件的读取,开启注解

4)配置日志文件

配置完成之后部署tomcat 调试


pom.xml文件中默认有两个模块:

spring-boot-starter :核心模块,包括自动配置支持、日志和YAML;

spring-boot-starter-test :测试模块,包括JUnit、Hamcrest、Mockito


@RestController 的意思就是controller里面的方法都以json格式输出,不用再写什么jackjson配置了

mockmvc测试:

Springboot杂_第1张图片

常常在项目中会使用filters用于录调用日志、排除有XSS威胁的字符、执行权限验证等等,Spring Boot自动添加了OrderedCharacterEncodingFilter和HiddenHttpMethodFilter,并且我们可以自定义Filter。

    · 实现Filter接口,实现Filter方法

    · 添加@Configuration 注解,将自定义Filter加入过滤链

在配置文件中定义的变量,可以通过@Value("${}")来引入对应值

jpa是利用Hibernate生成各种自动化的sql,如果只是简单的增删改查,基本上不用手写了,spring内部已经帮大家封装实现了。

jpa在springboot中如何使用:(数据库以及jpa的配置)

    1.pom.xml

    

        org.springframework.boot

        spring-boot-starter-data-jpa

    

     

        mysql

        mysql-connector-java

    

    2.properties文件

    spring.datasource.url=jdbc:mysql://localhost:3306/test

    spring.datasource.username=root

    spring.datasource.password=root

    spring.datasource.driver-class-name=com.mysql.jdbc.Driver

    spring.jpa.properties.hibernate.hbm2ddl.auto=update(自动创建|更新|验证数据库表结构)

    spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL5InnoDBDialect(dialect 主要是指定生成表名的存储引擎为InneoDB)

    spring.jpa.show-sql= true(是否打印出自动生产的SQL,方便调试的时候查看)

dao只要继承JpaRepository类就可以,几乎可以不用写方法,还可以根据方法名来自动的生产SQL,比如findByUserName 会自动生产一个以 userName 为参数的查询方法,比如 findAlll 自动会查询表里面的所有数据,比如自动分页等等

Entity中不映射成列的字段得加@Transient 注解,不加注解也会映射成列

    · @Entity

    · @Column(nullable = false,unique = true)或者不加该注解,都会自动映射成列

    · @Transient,表示该字段不映射成列

thymeleaf:

    springboot推荐的模板引擎

    Thymeleaf最大的特点是能够直接在浏览器中打开并正确显示模板页面,而不需要启动整个Web应用

    模板依旧是有效的XML文档,Thymeleaf会在运行期替换掉静态值

Springboot杂_第2张图片
Thymeleaf示例代码

个人理解:${}——变量注入值    #{}——常量注入值

以前的spring开发需要提供json接口时的配置:

    1.添加jackjson等相关jar包

    2.配置spring controller扫描

    3.对接的方法添加@ResponseBody

现在springboot提供json接口配置:

    @RestController注解——默认情况下类中的方法都会以json格式返回

自定义Filter:

    1.实现Filter接口,实现Filter方法

    2.添加@Configuration注解,将自定义Filter加入过滤链

Redis介绍:

    内存数据存储

    支持更丰富的数据结构,例如hashes,lists,sets等。

    支持数据持久化

    提供一些类数据库的特性(类似数据库的特性,但并不是数据库),例如事务,HA,主从库等

thymeleaf:

    · 变量表达式

        ${session.user.name}

    · 选择表达式

        第一级${book}

        第二级*{title}

用预先选择的对象代替上下文变量容器来执行

    · 文字国际化表达式

你可能感兴趣的:(Springboot杂)