法学学位论文写作方法

法学学位论文写作方法

加载中...

微信扫码,免登录解锁高速下载

如何使用 & 隐私说明

精彩点评

  • 法学学位论文写作方法
    Mr.G~高不高不高
    推荐

    通俗易懂,知识点全面,基本囊括了springmvc到springboot的转变之路,从springboot对原有框架的支持(各种好用的小插件),到springboot集成了各种插件和官方定义的starter,包括redis mongo mysql 等主流持久化中间件,最后也提到了springcloud微服务套件,值得一看

  • 法学学位论文写作方法
    二饼
    推荐

    补标,2021.01.02于当当云阅读。 适合有spring基础的人阅读,讲的很细致,会涉及到源码讲解,也介绍了很多spring boot 2.x相关组件。

  • 法学学位论文写作方法
    Peace
    推荐

    非常不错的一本关于spring boot2.x开发的书籍,通篇通俗易懂,深浅适宜,是一本难得的spring boot 入门书籍,spring boot的确是一个快速开发基于spring 应用的牛逼的框架或者架手架,简化了配置,让程序员从繁重的配置工作中解放出来,专注与业务逻辑的开发,spring cloud 套件可以从上帝视角了解分布式系统的方方面面,提升软件系统架构的理解!其实一切都来源于生活,大问题分解成多个小问题,分而治之。对于互联网应用,基于微服务的分布式系统架构是趋势,而集中式的单体系统架构,目前来说对于中小系统软件来说还是十分实用的!总而言之,使用哪种系统架构,还得看实际的项目!

  • 法学学位论文写作方法
    Destiny
    推荐

    之前刚接触Spring Boot的时候读过纸质书,当时觉得受益匪浅,尤其是实践方面可以直接下手。IOC、AOP、MVC这些Spring的核心概念讲的也很透彻,知其然亦知其所以然。 做了几年Spring Boot的开发后,再来重新读这本书依然有很多收获,巩固了Spring的基础知识,回忆起了更多的用法,可以使代码更优雅。现在的自己手里拿个锤子,看啥都像钉子,完成业务开发是第一位。重新读了这本书之后,还是可以优化一下自己的代码,回忆一下早已被抛在脑后的概念、原理、底层实现方式。 总体看适合做一本工具书,业务中遇到新的场景时,可以翻翻看有没有Spring boot支持的开发方式,能节约一些时间。一些概念性的的知识点也可以平时多复习,面试别人或者自己面试的时候都能用到。

  • 法学学位论文写作方法
    林子豪 Johny Sinn
    推荐

    《SpringBoot2深入浅出》总结: SpringBoot的设计目的是用来简化新Spring应用的初始搭建以及开发过程。 1、Spring AOP(Aspect Oriented Programming )面向切面编程 (1)连接点(Joint Point) 确定什么类的什么方法需要切面。 (2)切面(Aspect) 在Spring中,@Aspect用于注解一个切面。 切面就是在不修改已有代码的前提下,新增的功能。 (3)切点(Point Cut) 表示一组连接点。 (4)通知(Advice) 通知定义了在切点里面具体要做的操作,它通过before、after 和 around 来区别是在每个连接点之前、之后还是代替执行的代码。 2、Spring事务的隔离级别 互联网应用时刻面对着高并发的环境,如商品库存,时刻都是多个线程共享的数据,这样就会在多线程的环境中扣减商品库存。对于数据库而言,就会出现多个事务同时访问同一记录的情况,这样引起数据出现不一致的情况,便是数据库的丢失更新(Lost Update)问题。 第一类丢失更新: 一个事务回滚另外一个事务提交而引发的数据不一致的情况。 第二类丢失更新: 多个事务都提交引发的丢失更新。 目前大部分数据库已经克服了第一类丢失更新的问题。 为了避免丢失更新问题,Spring事务提出了4种隔离级别。Spring“事务的隔离级别”跟“数据库的隔离级别”是同一个概念。 (1)未提交读 未提交读是最低的隔离级别,其含义是允许一个事务读取另外一个事务没有提交的数据。 未提交读存在脏读的问题。 脏读又称无效数据的读出,是指在数据库访问中,事务T1将某一值修改,然后事务T2读取该值,此后T1因为某种原因撤销对该值的修改,这就导致了T2所读取到的数据是无效的。 (2)读写提交 读写提交,是指一个事务只能读取另外一个事务已经提交的数据,不能读取未提交的数据。 读写提交存在不可重复读的问题。 不可重复读,是指在数据库访问中,一个事务范围内两个相同的查询却返回了不同数据,通常是由于查询时系统中其他事务修改的提交而引起的。 (3)可重复读 可重复读的目标是克服读写提交中出现的不可重复读的现象,因为在读写提交的之前,其他事务可能出现一些值的变化,影响当前事务的执行。可重复读会等待其他事务对值的修改的提交。 可重复读存在幻读的问题。 比如事务A第一次查询得到一行记录row1,事务B提交修改后,事务A第二次查询得到两行记录row1和row2。 (4)串行化 串行化是数据库最高的隔离级别,它会要求所有的SQL都会按照顺序执行,这样就可以克服其他隔离级别出现的各种问题,所以它能够完全保证数据的一致性。 在现实中一般而言,选择隔离级别会以读写提交为主,它能够防止脏读,而不能避免不可重复读和幻读。为了克服数据不一致和性能问题,程序开发者还设计了乐观锁,甚至不再使用数据库而使用其他的手段。例如,使用Redis作为数据载体。 高并发情况下的数据不一致,存在库存不足,商品超发的问题。 (1)使用数据库的悲观锁。 在SQL的最后加入了for update语句。这样在数据库事务执行的过程中,就会锁定查询出来的数据,其他的事务将不能再对其进行读写,这样就避免了数据的不一致。 (2)通过version字段实现乐观锁。 执行更新操作的SQL语句通过条件判断version字段值是否一致,只有一致的情况下才能更新成功。 (3)Redis使用Lua脚本实现原子性操作。 3、Spring事务的传播行为 (1)REQUIRED 需要事务,它是默认传播行为,如果当前存在事务,就沿用当前事务,否则新建一个事务运行子方法。
(2)SUPPORTS 支持事务,如果当前存在事务,就沿用当前事务,如果不存在,则继续采用无事务的方式运行子方法。
(3)MANDATORY 必须使用事务,如果当前没有事务,则会抛出异常,如果存在当前事务,就沿用当前事务。 (4)REQUIRES_NEW
无论当前事务是否存在,都会创建新事务运行方法,这样新事务就可以拥有新的锁和隔离级别等特性,与当前事务相互独立。 (5)NOT_SUPPORTED
不支持事务,当前存在事务时,将挂起事务,运行方法。 (6)NEVER 不支持事务,如果当前方法存在事务,则抛出异常,否则继续使用无事务机制运行。 (7)NESTED 在当前方法调用子方法时,如果子方法发生异常,只回滚子方法执行过的SQL,而不回滚当前方法的事务。 4、SpringBoot访问数据库 (1)配置数据源 在Maven中加入依赖。 spring-boot-starter-data-jpa mysql-connector-java spring-boot-starter-jdbc commons-dbcp2 (DBCP数据库连接池) 配置application.properties配置文件。 spring.datasource.driver-class-name=com.mysql.jdbc.Driver spring.datasource.type=org.apache.commons.dbcp2.BasicDataSource (2)访问数据库 使用代码配置。 @SpringBootApplication @EnableJpaRepositories 一、JDBC 使用JdbcTemplate执行SQL。 可以使用StatementCallback和ConnectionCallback执行多条SQL,提高性能。 使用RowMapper实现数据库数据到POJO的映射。 二、整合Hibernate SpringBoot的JPA基于Hibernate实现。 定义实体POJO。 @Entity 标明这是一个实体 @Table 数据库表 @GeneratedValue 主键策略 @Column 字段 @EntityScan 继承JpaRepository接口(DAO)。 三、整合Mybatics 在Maven中加入依赖。 mybatis-spring-boot-starter @MapperScan @EntityScan 实现Mapper.xml和Mapper类@Mapper(@Repository)。 5、Spring WebFlux Spring WebFlux就是Spring集成了netty的框架,基于Reactor反应器模式,适用于高并发、大量耗时请求的多线程环境。 Spring WebFlux的用法有两种,一种是和SpringMvc基本相似,另一种是使用路由函数的方式,本质上都是要设置请求url跟处理方法的映射关系,只是实现细节不同,后者更加倾向于函数式编程。 Spring WebFlux的编程一般是要自定义Repository接口,加上@Repository注解,并且继承相对应的ReactiveRepository接口,比如ReactiveMongoRepository。 可能用到的注解: @Repository @Controller @RestController @RequestMapping @RequestHeader @GetMapping @PostMapping @PutMapping @PatchMapping @DeleteMapping @RequestBody @PathVariable @EnableAutoConfiguration @EnableReactiveMongoRepositories 为了方便微服务之间的调用,Spring WebFlux还提供了WebClient类给予开发者使用。它是一个比RestTemplate更为强大的类。 6、Spring Redis Redis是一种基于字符串存储的NoSQL,而Java是基于对象的语言,对象是无法存储到Redis中的,不过Java提供了序列化机制。 在Maven中加入依赖。 spring-boot-starter-data-redis 修改application.properties。 使用redisTemplate存取数据。 地理位置操作接口:
redisTemplate.opsForGeo(); 散列操作接口:
redisTemplate.opsForHash(); 基数操作接口:
redisTemplate.opsForHyperLogLog(); 列表操作接口:
redisTemplate.opsForList(); 集合操作接口:
redisTemplate.opsForSet(); 字符串操作接口:
redisTemplate.opsForValue(); 有序集合操作接口:
redisTemplate.opsForZSet(); 有时我们可能需要对某一个键值对(key-value)做连续的操作,例如,有时需要连续操作一个散列数据类型或者列表多次,这时Spring也提供支持,它提供了对应的BoundXXXOperations接口。 可以使用SessionCallback接口和RedisCallback接口,让RedisTemplate进行回调,通过它们可以在同一条连接下执行多个Redis命令,提高性能。 在一些网站中,经常会有排名,如最热门的商品或者最大的购买买家,都是常常见到的场景。对于这类排名,刷新往往需要及时,也涉及较大的统计,如果使用数据库会太慢,可以使用Redis的有序集合(zset)。 在Redis中使用事务,通常的命令组合是watch... multi...exec,也就是要在一个Redis连接中执行多个命令,可以使用SessionCallback接口来达到这个目的。其中,watch命令是可以监控Redis的一些键;multi命令是开始事务,开始事务后,该客户端的命令不会马上被执行,而是存放在一个队列里;exe命令的意义在于执行事务,只是它在队列命令执行前会判断被watch监控的Redis的键的数据是否发生过变化(即使赋予与之前相同的值也会被认为是变化过),如果它认为发生了变化,那么Redis就会取消事务,否则就会执行事务,Redis在执行事务时,要么全部执行,要么全部不执行,而且不会被其他客户端打断,这样就保证了Redis事务下数据的一致性。 7、Spring MongoDB 在Maven中加入依赖。 spring-boot-starter-data-mongodb 修改application.properties。 定义POJO @Document 标识为MongoBD文档 @Id @Field 使用mongoTemplate访问数据库。 8、Spring Cloud 对于启动文件采用了很多注解,如@SpringBootApplication、@EnableDiscoveryClient和@EnableCircuitBreaker等。为了简化开发,Spring Cloud还提供了自己的注解@SpringCloudApplication来简化使用Spring Cloud的开发。 一、服务治理和服务发现Eureka @EnableEurekaServer 二、微服务之间的调用 (1)Ribbon @LoadBalanced 使用RestTemplate调用微服务。 (2)Feign声明式调用 三、断路器Hystrix 四、路由网关Zuul

Copyright © 2020 - 2022 Mitsuha. All Rights Reserved. 用户协议 · 隐私政策 ·