Skip to content

Latest commit

 

History

32 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 

Repository files navigation

Springboot Learning

作者:钱云龙 422931278@qq.com 15921613518
学习springboot视频操作的代码,供参考

廖师兄视频学习记录
spring-boot 基础 http://www.imooc.com/learn/767
spring-boot-web 基础 http://www.imooc.com/learn/810
spirng-boot-projecct 项目实践 http://coding.imooc.com/learn/list/117.html

UNIT ONE
1 创建工程
2 项目属性配置
3 创建Controller
4 数据库的创建
5 事务的处理


configValue: this is a test
@Value("${configValue}")
private String configValue;
配置里面在使用属性
@Component
@ConfigurationProperties(prefix = "projectConfig")

在不同环境下面切换配置文件
java -jar target/***.jar --spring.profiles.active=prod


@Controller 主要给控制器的注解
@RestController 等同于 @ResponseBody+@Controller
@RequestMapping 可以写在方法前,类的前面
@PathVariable
@RequestParam(value="",defaultValue="",required=false)
@GetMapping @PostMapping 省略写法


添加依赖 spring-boot-starter-data-jpa mysql-connector-java
想用h2缓存数据库作为演示 spring: datasource: password: sa driver-class-name: org.h2.Driver url: jdbc:h2:file:~/.h2/testdb username: sa jpa: hibernate: ddl-auto: create show-sql: true

怎么理解H2?
文件同时访问我一直搞不定,了解了下./ file: tcp的区别 其实就是一个数据文件数据库,我们可以用h2的驱动去解析成数据库,结构化地去访问 一般可以用于演示,测试使用,也可以作为缓存数据库,jdbc:h2:file:/.h2/testdb 这里的代表 c:/users/administrator/的目录 搞了挺长时间的, 去掉file是相对路径,否则是绝对路径。在Ideal的使用过程中,我们会遇到 问题,就是成功连接上了文件,但始终看不到我们创建的表,需要在配置中设置下我们能看到的schema,设置为ALL 因为我们创建的表在PUBLIC schema中
多数据源的配置放到后面讲:http://blog.csdn.net/catoop/article/details/50575038

创建对应的实体类,看看效果。先简单 Student id name sex classid ddl-auto: create update

1 添加一个数据项
2 然后查询该数据项
3 当查询不到数据的时候,返回为空
4 增删改查的操作
5 通过年龄来查询

关于一些jpa查询的拓展 http://www.cnblogs.com/rulian/p/6533109.html

@Transactional 在service层中添加了事物,如果异常被抛出则回滚


UNIT TWO
1 表单验证
2 AOP请求处理
3 异常处理


对于项目重新的整理,项目的路径,可以再学习下git的操作
git checkout -b web-2 web-2

Spring-boot 对于表单的支持也特别方便 BindingResult, 同时添加@Valid的注解

关于VUE的课程学习 http://www.imooc.com/learn/796

AOP的基本概念


spring-boot-starter-aop

在访问方法前面,记录日志,知道进入了方法体内 @Aspect @Component注解 同时在里面的方法前面加入根据适配符号找到对应的方法集合 @Before("execution(public * com.example.one.controller.TestController.queryStudent(..))")

@PointCut注解,切点,让切面直接引入的概念

案例是: 在方法的前面可以直接打印出请求的地址,请求的类型,方法名,参数,同时打印出返回的结果 @AfterReturning(returning = "object", pointcut = "log()") public void doAfterReturning(Object object)


异常处理 当某些条件不满抛出信息。 1 不够资格,权限,次数 2 代码空指针,越界 3 数据库的异常

返回格式要统一 【code message data】 然后提供一些工具类,代码公共部分的封装,格式统一,这样代码很清爽了。 把所有的逻辑放到service中 设标记返回不通的结果。

统一遇到异常返回相同的结果类型 把异常拼命往外抛,抛给异常处理器去处理 定义自定义异常 @ControllerAdvice @ExceptionHandler 对于其他异常,我们该如何处理。先打印下日志 异常中code, message统一地进行管理起来,通过枚举去实现


单元测试 你把bug的程序丢给别人测试,这个很不负责的行为。当然像领导,事物繁忙,或者逻辑复杂,测试环境问题。

@RunWith(SpringRunner.class) @SpringBootTest @Test注解

Assert.assertEqual(13, 13);

通过IDE快速的创建测试案例

方法的请求, URL的测试 @AutoConfigureMocked MockMvc mvc; mvc.perform MockRequestBuilders.get

mvn clean package -Dmaven.test.skip=true

最后看下DOCKER的视频,将开发 http://www.imooc.com/video/15640

对开发,运维,测试都是很有帮助的技术 linux bash 镜像容器, 多容器app, 容器存储, registry

sudo wget -qO- https://get.docker.com | sh , 安装没啥说的,命令行说一下

docker run 镜像名称 echo hello docker docker run nginx docker images -p 8080:80 -d docker ps docker cp index.html 镜像ID 镜像内部的文件路径:/// docker stop docker commit -m 'fun' id docker rmi id

About

学习springboot视频操作的代码,供参考

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages