Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenDocCN
howtodoinjava-zh
提交
88e596dd
H
howtodoinjava-zh
项目概览
OpenDocCN
/
howtodoinjava-zh
大约 1 年 前同步成功
通知
1
Star
82
Fork
8
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
H
howtodoinjava-zh
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
88e596dd
编写于
6月 06, 2020
作者:
W
wizardforcel
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
2020-06-06 22:34:29
上级
b230b115
变更
8
隐藏空白更改
内联
并排
Showing
8 changed file
with
40 addition
and
38 deletion
+40
-38
docs/misc/184.md
docs/misc/184.md
+1
-1
docs/misc/246.md
docs/misc/246.md
+11
-12
docs/misc/248.md
docs/misc/248.md
+10
-10
docs/misc/249.md
docs/misc/249.md
+5
-3
docs/misc/250.md
docs/misc/250.md
+10
-9
docs/misc/265.md
docs/misc/265.md
+1
-1
docs/misc/281.md
docs/misc/281.md
+1
-1
docs/misc/51.md
docs/misc/51.md
+1
-1
未找到文件。
docs/misc/184.md
浏览文件 @
88e596dd
...
...
@@ -2,7 +2,7 @@
> 原文: [https://howtodoinjava.com/junit/how-to-add-listner-in-junit-testcases/](https://howtodoinjava.com/junit/how-to-add-listner-in-junit-testcases/)
监听器通常可以帮助
侦
听我们感兴趣的事件。 这可能有几个原因。 例如,我们添加了监听器以添加特定的日志,在 Java GUI 编程中处理 UI 事件等。
监听器通常可以帮助
监
听我们感兴趣的事件。 这可能有几个原因。 例如,我们添加了监听器以添加特定的日志,在 Java GUI 编程中处理 UI 事件等。
JUnit 还支持通过
`RunListener`
类执行测试时添加监听器。 该监听器可用于从改进日志记录到测试特定逻辑的各种目的。
...
...
docs/misc/246.md
浏览文件 @
88e596dd
# 带有 RxJS
的 Angular HttpClient 可观察的
示例
# 带有 RxJS
`Observable`的 Angular `HttpClient`
示例
> 原文: [https://howtodoinjava.com/angular/rxjs-observable-httpclient/](https://howtodoinjava.com/angular/rxjs-observable-httpclient/)
了解如何使用 Angular
`HttpClient`
服务从在线 REST API 获取数据,并将其作为
`Observable`
对象/数组返回。 在发生任何数据事件时,
`observable`
的订户将做出反应。
了解如何使用 Angular
`HttpClient`
服务从在线 REST API 获取数据,并将其作为
`Observable`
对象/数组返回。 在发生任何数据事件时,
`observable`
的订户将做出反应。
```
java
Table
of
Contents
...
...
@@ -14,11 +14,11 @@ View HTML Template
Demo
```
##
HTTPClient
设置
##
`HTTPClient`
设置
要使用
`HTTPClient`
服务,您需要执行两个步骤:
1.
#### 在根模块中导入
HttpClientModule
1.
#### 在根模块中导入
`HttpClientModule`
从`@angular/common/http`包中导入`HttpClientModule`模块,并将其条目添加到`@NgModule`的`imports`属性中。
...
...
@@ -43,7 +43,7 @@ Demo
```
2.
#### 在服务构造器中注入
HttpClient
2.
#### 在服务构造器中注入
`HttpClient`
现在,在开始使用它时,在服务代码中注入实际的`HttpClient`服务。
...
...
@@ -62,7 +62,7 @@ Demo
```
## 创建返回
Observable
的服务
## 创建返回
`Observable`
的服务
我们将使用通过
[
REST 模拟服务器
](
https://howtodoinjava.com/angular/mock-rest-server/
)
创建的 REST API。 让我们编辑员工服务类别的代码,并从中返回
`Observable`
。
...
...
@@ -89,7 +89,7 @@ export class EmployeeService {
```
上面的代码点击 REST API
`"/employees"`
并获取
`employee`
数组。 然后,它返回
employee 数组作为可观察的集合。 任何方法都可以订阅它来侦
听此数组上的数据事件。
上面的代码点击 REST API
`"/employees"`
并获取
`employee`
数组。 然后,它返回
`employee`
数组作为可观察的集合。 任何方法都可以订阅它来监
听此数组上的数据事件。
仅供参考,
`Employee`
是用于存储数据的模型类。
...
...
@@ -110,7 +110,7 @@ export class Employee {
```
## 创建订阅了
Observable
的观察者
## 创建订阅了
`Observable`
的观察者
我们将在组件文件中创建订户。 它将从可观察数组中读取数据并分配给模型属性。 模型属性可用于映射来自 UI 的数据。
...
...
@@ -149,7 +149,7 @@ export class AppComponent {
## 查看 HTML 模板
是时候更新视图 HTML 了,该 HTML 将尽快提供
`employee
array`
数据。
是时候更新视图 HTML 了,该 HTML 将尽快提供
`employee
`
数组
数据。
```
java
<
h1
>
...
...
@@ -192,12 +192,11 @@ export class AppComponent {
![
Angular HttpClient with RxJS Observable Example
](
img/ae44f6a8646fdb48d982c081e9870d4a.png
)
Angular HttpClient with RxJS Observable Example
带有 RxJS
`Observable`
的 Angular
`HttpClient`
示例
将您的评论放在源代码中。
学习愉快!
[
源码下载
](
https://howtodoinjava.com/wp-content/downloads/Angular2
Http Service Example.zip)
\ No newline at end of file
[
源码下载
](
https://howtodoinjava.com/wp-content/downloads/Angular2%20Http%20Service%20Example.zip
)
\ No newline at end of file
docs/misc/248.md
浏览文件 @
88e596dd
# AngularJS 教程– HelloWorld 示例
# AngularJS 教程
– HelloWorld 示例
> 原文: [https://howtodoinjava.com/angularjs/angularjs-tutorial-helloworld-example/](https://howtodoinjava.com/angularjs/angularjs-tutorial-helloworld-example/)
...
...
@@ -42,9 +42,9 @@ AngularJS 中的模型和视图比大多数 JavaScript 客户端框架中的模
我们已经知道 AngularJS 是基于 MVC 的结构化框架,因此我们将需要编写许多组件和工具以使您的应用代码结构化并得到良好维护。 让我们简短地学习这些组件。 我们将在下一个教程中详细讨论。
*
#### 模
组
*
#### 模
块
模块是控制器,指令,过滤器,服务和其他配置信息的集合。 所有这一切的主要参与者是`angular.module()`,因为它是进入
Module
API(用于配置 Angular 模块的机制)的网关。 它用于注册,创建和检索以前创建的 AngularJS 模块。
模块是控制器,指令,过滤器,服务和其他配置信息的集合。 所有这一切的主要参与者是`angular.module()`,因为它是进入
模块
API(用于配置 Angular 模块的机制)的网关。 它用于注册,创建和检索以前创建的 AngularJS 模块。
例如 将以下代码添加到新的 JavaScript 文件中,您可以将其命名为`myAppModule.js`。
...
...
@@ -67,10 +67,10 @@ AngularJS 中的模型和视图比大多数 JavaScript 客户端框架中的模
);
```
*
####
范围
*
####
作用域
在 AngularJS 中,`$scope`是具有可用属性和要使用方法的对象。 请注意,作用域可用于视图和控制器。
在 AngularJS 中创建控制器时,会将
$ scope
对象作为参数传递。
在 AngularJS 中创建控制器时,会将
`$scope`
对象作为参数传递。
```java
var myAppModule = angular.module('MyFilterDemoCtrl', []);
...
...
@@ -104,7 +104,7 @@ AngularJS 中的模型和视图比大多数 JavaScript 客户端框架中的模
</div>
```
*
#### 表达
方
式
*
#### 表达式
视图中使用的范围变量实际上是表达式。 这些表达式用大括号括起来:`{{ expression }}`。 您可以编写简单表达式以及复杂表达式,例如`{{ firstName + " " + lastName }}`或`{{ "id = " + 0 }}`。
...
...
@@ -112,7 +112,7 @@ AngularJS 中的模型和视图比大多数 JavaScript 客户端框架中的模
在 Angular 中,控制器通过在范围内设置初始状态或值以及向范围添加行为来扩展范围。 例如,您可以添加一个对范围内的值求和的函数,以提供总计,以便如果范围后的模型数据发生更改,则总值始终会更改。
您必须使用“
ng-controller
”将控制器添加到 HTML 元素,然后在后台将其实现为 JavaScript 代码。
您必须使用“
`ng-controller`
”将控制器添加到 HTML 元素,然后在后台将其实现为 JavaScript 代码。
```java
<div ng-app="myApp" ng-controller="sumController">
...
...
@@ -179,13 +179,13 @@ AngularJS 中的模型和视图比大多数 JavaScript 客户端框架中的模
![
Angular Hello World
](
img/d9cc78d7109497d9128629ab45c735a5.png
)
AngularJS Hello World
Application Screen
AngularJS Hello World
应用界面
让我们看一下 HTML 视图和 Angular 控制器 JS 文件的代码,以了解其工作原理。
####
helloWorld.html
####
`helloWorld.html`
```
java
<!
doctype
html
>
...
...
@@ -206,7 +206,7 @@ AngularJS Hello World Application Screen
</
html
>
```
####
app.js
####
`app.js`
```
java
var
firstApp
=
angular
.
module
(
'
helloWorldApp
'
,
[]);
...
...
docs/misc/249.md
浏览文件 @
88e596dd
...
...
@@ -2,7 +2,7 @@
> 原文: [https://howtodoinjava.com/angularjs/angular-jquery-lite-jqlite-tutorial/](https://howtodoinjava.com/angularjs/angular-jquery-lite-jqlite-tutorial/)
AngularJS 和 jQuery 都是非常强大的 JS 框架。 正如
[
Angular 介绍
](
//howtodoinjava.com/angularjs/angularjs-tutorial-helloworld-example/
)
中所讨论的那样,jQuery 从很长时间以来一直是最引人注目的框架。 AngularJS 增加了 MVC 模式的功能以及许多其他内置服务,但是它确实尊重了 jquery 易于使用的语法(
[
jquery 选择器
](
//howtodoinjava.com/scripting/jquery/jquery-selectors/
)
),并且可以通过简单的函数调用对多个元素进行操作。
AngularJS 和 jQuery 都是非常强大的 JS 框架。 正如
[
Angular 介绍
](
//howtodoinjava.com/angularjs/angularjs-tutorial-helloworld-example/
)
中所讨论的那样,jQuery 从很长时间以来一直是最引人注目的框架。 AngularJS 增加了 MVC 模式的功能以及许多其他内置服务,但是它确实尊重了 jquery 易于使用的语法(
[
jquery 选择器
](
//howtodoinjava.com/scripting/jquery/jquery-selectors/
)
),并且可以通过简单的函数调用对多个元素进行操作。
虽然,可以将 jQuery 库和 angular 一起使用,但建议使用
**jQuery lite**
(默认情况下打包在 AngularJS 中)。
...
...
@@ -39,7 +39,7 @@ $scope.clicked = function(event){
## 倾向于使用“Angular 方式”
您会经常听到“仅在指令中进行 DOM 操作”。 这是必须的。
兑现 在前进之前,请尽量避免使用 jQuery。 总是想办法避免使用 jQuery /
jqLite 来操作 DOM 对象。
您会经常听到“仅在指令中进行 DOM 操作”。 这是必须的。
在前进之前,请尽量避免使用 jQuery。 总是想办法避免使用 jQuery/
jqLite 来操作 DOM 对象。
AngularJS 附带了一整套工具,使这一过程变得非常容易。 使用
`ngClass`
,我们可以动态更新类;
`ngModel`
允许双向数据绑定;
`ngShow`
和
`ngHide`
以编程方式显示或隐藏元素; 还有更多–包括我们自己编写的内容。
...
...
@@ -86,7 +86,9 @@ AngularJS 附带了一整套工具,使这一过程变得非常容易。 使用
与以前的版本相比,它非常清晰,易于维护且易于测试,在任何不使用 jQuery 的环境中,它都很容易被破坏。
**参考:**
[
https://docs.angularjs.org/api/ng/function/angular.element
](
https://docs.angularjs.org/api/ng/function/angular.element
)
[
http://stackoverflow.com/ 问题/ 14994391 / thinking-in-angularjs-如果我有一个 jquery-backgroun
](
https://stackoverflow.com/questions/14994391/thinking-in-angularjs-if-i-have-a-jquery-backgroun
)
d
[
https://stackoverflow.com/questions/14994391/thinking-in-angularjs-if-i-have-a-jquery-background
](
https://stackoverflow.com/questions/14994391/thinking-in-angularjs-if-i-have-a-jquery-background
)
学习愉快!
\ No newline at end of file
docs/misc/250.md
浏览文件 @
88e596dd
...
...
@@ -2,7 +2,7 @@
> 原文: [https://howtodoinjava.com/angularjs/angularjs-services-built-in-and-custom/](https://howtodoinjava.com/angularjs/angularjs-services-built-in-and-custom/)
正如我们在
[
Angular 介绍
](
//howtodoinjava.com/angularjs/angularjs-tutorial-helloworld-example/
)
中了解到的,服务是
**无状态对象和单例对象**
,它们为 Web 应用提供功能。 例如,
`$http`
是用于对 Web 服务器进行 HTTP 调用的核心服务。 简单来说,您可以将 Angular 服务假定为可重用代码的
**块,它执行一个或多个相关任务(例如 Java 中带有静态方法的工具类)。 在 AngularJS 中,有几个内置服务–您也可以创建自己的自定义服务。**
正如我们在
[
Angular 介绍
](
//howtodoinjava.com/angularjs/angularjs-tutorial-helloworld-example/
)
中了解到的,服务是
**无状态对象和单例对象**
,它们为 Web 应用提供功能。 例如,
`$http`
是用于对 Web 服务器进行 HTTP 调用的核心服务。 简单来说,您可以将 Angular 服务假定为可重用代码块,它执行一个或多个相关任务(例如 Java 中带有静态方法的工具类)。 在 AngularJS 中,有几个内置服务 – 您也可以创建自己的自定义服务。
```
java
Table
of
Contents
...
...
@@ -25,17 +25,18 @@ module.controller('DemoController', function( $http ){
让我们列出有 Angular 的内置服务。
| 服务名称 | 描述 |
| --- | --- |
|
`$anchorScroll`
| 提供滚动到
`$location.hash()`
中指定的页面锚点的功能 |
|
`$animate`
| 该服务公开了一系列 DOM 工具方法,这些方法提供对动画挂钩的支持。 |
|
`$animateCss`
| 默认情况下,仅当包含
`ngAnimate`
时,此服务才会执行动画。 |
|
`$cacheFactory`
| 构造
Cache
对象,放置和检索键值对并为其提供对其他服务的访问权限的工厂。 |
|
`$cacheFactory`
| 构造
缓存
对象,放置和检索键值对并为其提供对其他服务的访问权限的工厂。 |
|
`$templateCache`
| 首次使用模板时,会将其加载到模板缓存中以便快速检索。 |
|
`$compile`
| 将 HTML 字符串或 DOM 编译到模板中,并生成模板函数,然后可以使用该函数将范围和模板链接在一起。 |
|
`$controller`
| 这负责实例化 Angular 控制器组件。 |
|
`$document`
| 指定对
`window.document`
元素的
[
jQuery 包的
](
//howtodoinjava.com/scripting/jquery/javascript-dom-objects-vs-jquery-objects/
)
引用。 |
|
`$exceptionHandler`
| Angular 表达式中任何未捕获的异常都委托给此服务。 默认实现只是委派给
`$log.error`
,它将其记录到浏览器控制台中。 |
|
`$filter`
| 过滤器用于格式化显示给用户的数据。 |
|
`$httpParamSerializer`
| 默认的
`$http`
params
序列化程序,将对象转换为字符串。 |
|
`$httpParamSerializer`
| 默认的
`$http`
参数
序列化程序,将对象转换为字符串。 |
|
`$httpParamSerializerJQLike`
| 替代
`$http`
参数序列化器,它遵循 jQuery 的
`param()`
方法逻辑。 序列化程序还将按字母顺序对参数进行排序。 |
|
`$http`
| 此服务有助于通过浏览器的
`XMLHttpRequest`
对象或
`JSONP`
与远程 HTTP 服务器进行通信。 |
|
`$xhrFactory`
| 用于创建
`XMLHttpRequest`
对象的工厂函数。 |
...
...
@@ -65,9 +66,9 @@ module.controller('DemoController', function( $http ){
声明 angularjs 服务的方式主要有两种。 让我们了解两种方式:
#### 使用
– module.service('serviceName',function(){})
#### 使用
`module.service('serviceName', function(){})`
当您使用
`module.service()`
和
**创建服务时
,作为第二个参数**
传递的 function()
的实例成为 AngularJS 注册并随后在需要时注入到其他服务/控制器的服务对象。
当您使用
`module.service()`
和
**创建服务时
**
,作为第二个参数传递的
`function()`
的实例成为 AngularJS 注册并随后在需要时注入到其他服务/控制器的服务对象。
使用
`module.service()`
在自定义服务对象中声明方法的语法为:
...
...
@@ -84,9 +85,9 @@ module.service('DemoService', function() {
});
```
#### 使用
– module.factory(‘factoryName’,function(){})
#### 使用
– `module.factory('factoryName', function(){})`
当您使用
`module.factory()`
创建服务时,作为第二个参数传递的
function()的
**返回值将成为 AngularJS 注册并稍后在需要时注入到其他服务/控制器的服务对象。**
当您使用
`module.factory()`
创建服务时,作为第二个参数传递的
`function()`
的
**返回值**
将成为 AngularJS 注册并稍后在需要时注入到其他服务/控制器的服务对象。
使用
`module.factory()`
在自定义服务对象中声明方法的语法为:
...
...
@@ -201,8 +202,8 @@ app.controller('LondonController', ['$scope', 'TimeService',
输出将如下所示:
请参阅
[
CodePen
](
https://codepen.io
)
上的
Pen
[
Angular Service 演示–时区示例
](
https://codepen.io/howtodoinjava/pen/jWxYKB/
)
,作者为 Lokesh(
[
@howtodoinjava
](
https://codepen.io/howtodoinjava
)
)。
请参阅
[
CodePen
](
https://codepen.io
)
上的
[
Angular 服务演示 – 时区示例
](
https://codepen.io/howtodoinjava/pen/jWxYKB/
)
,作者为 Lokesh(
[
@howtodoinjava
](
https://codepen.io/howtodoinjava
)
)。
这就是
**AngularJS
Services
入门教程**
的全部内容。 将我的问题放在评论部分。
这就是
**AngularJS
服务
入门教程**
的全部内容。 将我的问题放在评论部分。
学习愉快!
\ No newline at end of file
docs/misc/265.md
浏览文件 @
88e596dd
...
...
@@ -4,7 +4,7 @@
我们知道什么是 MVC? MVC 代表
[
**模型-视图-控制器**
](
https://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller
"MVC"
)
。 简而言之,MVC 是一种设计技术,其中将应用组件分为 3 组,以便可以独立开发它们而无需考虑它们将如何交互。 如果构建正确,则很少有配置代码可以绑定它们,并且可以立即使用。
[
**PubSub(发布者订阅者)**
](
https://en.wikipedia.org/wiki/Publish%E2%80%93subscribe_pattern
"pubsub"
)
模型是设计范式,其中多个订阅者正在
侦
听源上的更改事件,并且一旦发生任何更改,便会立即通知监听器。 在用户交互影响屏幕上多个部分的大型系统中,此模式消除了许多硬编码,并提供了设计灵活性。
[
**PubSub(发布者订阅者)**
](
https://en.wikipedia.org/wiki/Publish%E2%80%93subscribe_pattern
"pubsub"
)
模型是设计范式,其中多个订阅者正在
监
听源上的更改事件,并且一旦发生任何更改,便会立即通知监听器。 在用户交互影响屏幕上多个部分的大型系统中,此模式消除了许多硬编码,并提供了设计灵活性。
![
PubSub + MVC in JavaScript
](
img/99dc384aba029061cae775869ac41f18.png
)
...
...
docs/misc/281.md
浏览文件 @
88e596dd
...
...
@@ -134,7 +134,7 @@ PaaS 供应商为应用开发人员提供了开发环境。 在 PaaS 模型中
[Google App Engine](https://cloud.google.com/appengine/docs/java/gettingstarted/introduction) 应用易于创建,易于维护,并且可以随着流量和数据存储需求的变化而轻松扩展。 使用 App Engine,无需维护任何服务器。 您只需上传您的应用即可使用。
通过 App Engine,您可以使用 Servlet 或
侦
听端口`8080`的服务器代码轻松部署和运行标准 Java Web 应用。 App Engine 应用会根据传入流量自动扩展。 负载平衡,微服务,授权,SQL 和 noSQL 数据库,内存缓存,流量拆分,日志记录,搜索,版本控制,推出和回滚以及安全扫描均受本机支持,并且可以高度自定义。
通过 App Engine,您可以使用 Servlet 或
监
听端口`8080`的服务器代码轻松部署和运行标准 Java Web 应用。 App Engine 应用会根据传入流量自动扩展。 负载平衡,微服务,授权,SQL 和 noSQL 数据库,内存缓存,流量拆分,日志记录,搜索,版本控制,推出和回滚以及安全扫描均受本机支持,并且可以高度自定义。
要在 App Engine 上运行应用,您需要:
...
...
docs/misc/51.md
浏览文件 @
88e596dd
...
...
@@ -14,7 +14,7 @@ Log4j 带有多个选项来格式化框架创建的日志文件。 它也可以
**步骤 2)在`log4j-server.properties`文件**
中配置套接字服务器日志记录配置
很少有人知道 log4j 具有与功能齐全的
[
**套接字服务器**
](
https://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/net/SocketServer.html
"Log4j Socket Server"
)
捆绑在一起的功能,该功能可用于
侦
听网络连接并记录从各个网络节点和位置发送到服务器的日志事件。
很少有人知道 log4j 具有与功能齐全的
[
**套接字服务器**
](
https://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/net/SocketServer.html
"Log4j Socket Server"
)
捆绑在一起的功能,该功能可用于
监
听网络连接并记录从各个网络节点和位置发送到服务器的日志事件。
要配置套接字服务器,请在给定的项目根文件夹中创建一个
`log4j-server.properties`
文件。 此文件配置接收到的日志事件的记录方式和记录位置。
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录