Scala学习二十——Actor】的更多相关文章

一.本章要点 每个actor都要扩展Actor类并提供act方法 要往actor发送消息,可以用actor!message 消息发送是异步的:”发完就忘“ 要接受消息,actor可以调用receive或react,通常是在循环中这样做 receive/react的参数是有case语句组成的代码块(偏函数) 不同actor之间不应该共享状态.总是使用消息来发送数据 不要直接调用actor的方法,通过消息进行通信 避免同步消息——将发送消息和等待响应分开 不同actor可以通过react而不是rec…
一.本章要点 延续让你可以回到程序执行当中之前的某个点; 可以在shift块中捕获延续 延续函数一直延展到包含它的reset块的尾部 延续所谓的”余下的运算“,从包含shift的表达式开始,到包含它的reset块的尾部结束,其中shift替换成一个”洞“ 当你传入一个参数来调用延续时,这个”洞“将传入的参数值填上 包含shift表达式的代码将被以”延续传递风格“(CPS)重写,直到包含该延续的reset为止 包含shift但没有reset的方法必须加上CPS注解 延续可以用来将对某个树形结构的递…
一.事务配置 上面这些属性都可以在@Transactional注解的参数上进行设置. readOnly:true只读事务,false读写事务,增删改要设为false,查询设为true. timeout:设置超时时间单位秒,在多长时间之内事务没有提交成功就自动回滚,-1表示不设置超时时间. rollbackFor:当出现指定异常进行事务回滚 noRollbackFor:当出现指定异常不进行事务回滚 思考:出现异常事务会自动回滚,这个是我们之前就已经知道的 noRollbackFor是设定对于指定的…
一.环境准备 创建一个Web的Maven项目 参考Java开发学习(二十三)----SpringMVC入门案例.工作流程解析及设置bean加载控制中环境准备 pom.xml添加Spring依赖 <?xml version="1.0" encoding="UTF-8"?> ​ <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.…
一.请求参数 请求路径设置好后,只要确保页面发送请求地址和后台Controller类中配置的路径一致,就可以接收到前端的请求,接收到请求后,如何接收页面传递的参数? 关于请求参数的传递与接收是和请求方式有关系的,目前比较常见的两种请求方式为: GET POST 针对于不同的请求前端如何发送,后端如何接收? 1.1 环境准备 创建一个Web的Maven项目 参考Java开发学习(二十三)----SpringMVC入门案例.工作流程解析及设置bean加载控制中环境准备 pom.xml添加Spring…
SpringMVC接收到请求和数据后,进行了一些处理,当然这个处理可以是转发给Service,Service层再调用Dao层完成的,不管怎样,处理完以后,都需要将结果告知给用户. 比如:根据用户ID查询用户信息.查询用户列表.新增用户等. 对于响应,主要就包含两部分内容: 响应页面 响应数据 文本数据 json数据 因为异步调用是目前常用的主流方式,所以我们需要更关注的就是如何返回JSON数据. 一.环境准备 创建一个Web的Maven项目 参考Java开发学习(二十三)----SpringMV…
一.拦截器概念 讲解拦截器的概念之前,我们先看一张图: (1)浏览器发送一个请求会先到Tomcat的web服务器 (2)Tomcat服务器接收到请求以后,会去判断请求的是静态资源还是动态资源 (3)如果是静态资源,会直接到Tomcat的项目部署目录下去直接访问 (4)如果是动态资源,就需要交给项目的后台代码进行处理 (5)在找到具体的方法之前,我们可以去配置过滤器(可以配置多个),按照顺序进行执行 (6)然后进入到到中央处理器(SpringMVC中的内容),SpringMVC会根据配置的规则进行…
1.介绍 继承是面向对象的概念,用于代码的可重用性.可以通过使用extends关键字来实现继承. 为了实现继承,一个类必须扩展到其他类,被扩展类称为超类或父类.扩展的类称为派生类或子类. Scala支持各种类型的继承,包括单一,多层次,多重和混合.可以在类中使用单一,多层次和层次结构.多重和混合只能通过使用特征来实现.在这里,通过使用图形表示所有类型的继承 单一继承 多层继承 多重继承 2.例子 class GreatApe(){ def call ="GreatApe! " var…
控制结构和函数 摘要: 本篇主要学习在Scala中使用条件表达式.循环和函数,你会看到Scala和其他编程语言之间一个根本性的差异.在Java或C++中,我们把表达式(比如3+4)和语句(比如if语句)看做两样不同的东西.表达式有值,而语句执行动作.在Scala中,几乎所有构造出来的语法结构都有值.这个特性使得程序更加精简,也更易读.本篇的要点包括: 1. 表达式有值 2. 块也有值,是它最后一个表达式的值 3. Scala的for循环就像是"增强版"的Java for循环 4. 分号…
一.本章要点 隐式转换用于类型之间的转换 必须引入隐式转换,并确保它们可以以单个标识符的形式出现在当前作用域 隐式参数列表会要求指定类型的对象.它们可以从当前作用域中以单个标识符定义的隐式对象的获取,或者从目标类型的伴生对象获取; 如果隐式参数是一个单参数的函数,那么它同时也会被作为隐式转换使用 类型参数的上下文界定要求存在一个指定类型的隐式对象 如果有可能定位到一个隐式对象,这一点可以作为证据证明某个类型转换是合法的 二.隐式转换 隐式转换函数指以implicit关键字声明的带有单个参数的函数…