传统搭建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测试:
常常在项目中会使用filters用于录调用日志、排除有XSS威胁的字符、执行权限验证等等,Spring Boot自动添加了OrderedCharacterEncodingFilter和HiddenHttpMethodFilter,并且我们可以自定义Filter。
· 实现Filter接口,实现Filter方法
· 添加@Configuration 注解,将自定义Filter加入过滤链
在配置文件中定义的变量,可以通过@Value("${}")来引入对应值
jpa是利用Hibernate生成各种自动化的sql,如果只是简单的增删改查,基本上不用手写了,spring内部已经帮大家封装实现了。
jpa在springboot中如何使用:(数据库以及jpa的配置)
1.pom.xml
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
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会在运行期替换掉静态值
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}
用预先选择的对象代替上下文变量容器来执行
· 文字国际化表达式
网友评论