提交 daa73e28 编写于 作者: W wizardforcel

2020-06-11 23:11:51

上级 1c04c682
......@@ -146,7 +146,7 @@ Article [id=1, title=My Article, content=ABC]
#### 5.1 备忘录是内部类吗?
可以用许多不同的方式来实现备忘录设计模式,例如内部类,程序包专用可见性或[序列化](https://howtodoinjava.com/java/serialization/a-mini-guide-for-implementing-serializable-interface-in-java/)等。实现备忘录模式没有固定的准则。
可以用许多不同的方式来实现备忘录设计模式,例如内部类,包专用可见性或[序列化](https://howtodoinjava.com/java/serialization/a-mini-guide-for-implementing-serializable-interface-in-java/)等。实现备忘录模式没有固定的准则。
#### 5.2 备忘录模式的好处
......
......@@ -2,7 +2,7 @@
> 原文: [https://howtodoinjava.com/python/install-python-sublime-editor/](https://howtodoinjava.com/python/install-python-sublime-editor/)
了解**在 Sublime 编辑器**中安装 python 软件包的功能,例如自动完成功能,以及在 Sublime 编辑器本身中运行 build。
了解**在 Sublime 编辑器**中安装 python 包的功能,例如自动完成功能,以及在 Sublime 编辑器本身中运行 build。
```java
Table of Contents
......@@ -12,9 +12,9 @@ Install Package Python 3
Verify Python Autocomplete and Build
```
## 安装 Sublime 软件包控制
## 安装 Sublime 包控制
首先下载用于 sublime 编辑器的程序包控件。
首先下载用于 sublime 编辑器的包控件。
1. Go to URL: [https://packagecontrol.io/installation#st3](https://packagecontrol.io/installation#st3)
......@@ -28,27 +28,27 @@ Verify Python Autocomplete and Build
![Browse Packages](img/c0902464eae6a16c4fd7868e706cff80.png)
浏览软件
浏览包
3. **单击“ Package Control.sublime-package”链接,保存从软件包控制网站下载的文件**,并将其**放在第二步**的文件夹中。
3. **单击“ Package Control.sublime-package”链接,保存从包控制网站下载的文件**,并将其**放在第二步**的文件夹中。
4. 现在,**通过关闭升华编辑器**来重新启动,然后再次将其打开。
5. To verify the package control is installed correctly, click on **Preferences > Package Control** menu item. It should open up the package control window.
![Package Control Menu](img/6b8a6f91fdc1d0fd6a25dc5a696581ea.png)
程序包控制菜单
包控制菜单
## 安装软件包 Python 3
## 安装包 Python 3
1. Now to install any package support, including Python package, go to **Preferences > Package Control** and choose **Install Package**.
![Install Package Window](img/8aefc2c48da8bcebc73cf46543c5cbd6.png)
安装程序包窗口
安装包窗口
......@@ -56,7 +56,7 @@ Verify Python Autocomplete and Build
![Select Python Package to Install](img/35f82294580f2bf0b35d2c4e56e90039.png)
选择 Python 软件包以安装
选择 Python 包以安装
......
......@@ -54,7 +54,7 @@ mvn eclipse:eclipse -Dwtpversion=2.0
需要以某种方式将 Struts 插入您的 Web 应用。 这意味着应将对应用的传入请求移交给 strut 进行处理。 这是通过在 web.xml 文件中添加过滤器定义来完成的。 此筛选器实质上将所有传入请求重定向到 **StrutsPrepareAndExecuteFilter** ,然后使用配置来处理该请求。
另外,我传递了“ **actionPackages** ” init 参数,以便可以扫描此程序包以查找必需的带注释的类。
另外,我传递了“ **actionPackages** ” init 参数,以便可以扫描此包以查找必需的带注释的类。
```java
<!DOCTYPE web-app PUBLIC
......
......@@ -2,7 +2,7 @@
> 原文: [https://howtodoinjava.com/struts2/spring-4-struts-2-hibernate-integration-tutorial/](https://howtodoinjava.com/struts2/spring-4-struts-2-hibernate-integration-tutorial/)
以前,我已经介绍了 [**Spring3 +Hibernate集成**](//howtodoinjava.com/spring/spring-orm/spring-3-and-hibernate-integration-tutorial-with-example/ "Spring3 and hibernate integration tutorial with example") 示例和 [**struts 2 hello world**](//howtodoinjava.com/struts-2/struts-2-hello-world-example-application/ "Struts 2 hello world example application") 示例。 在本教程中,我将讨论将 spring 框架与 Struts 和 Hibernate 结合使用时要记住的所有重要点。 另外,请注意,本教程使用了其他次要但很重要的概念,例如日志记录,TLD 的使用和事​​务以及已集成到本教程中。 因此,请记住还要检查其详细信息。
以前,我已经介绍了 [**Spring3 +Hibernate 集成**](//howtodoinjava.com/spring/spring-orm/spring-3-and-hibernate-integration-tutorial-with-example/ "Spring3 and hibernate integration tutorial with example") 示例和 [**struts 2 hello world**](//howtodoinjava.com/struts-2/struts-2-hello-world-example-application/ "Struts 2 hello world example application") 示例。 在本教程中,我将讨论将 spring 框架与 Struts 和 Hibernate 结合使用时要记住的所有重要点。 另外,请注意,本教程使用了其他次要但很重要的概念,例如日志记录,TLD 的使用和事​​务以及已集成到本教程中。 因此,请记住还要检查其详细信息。
在本教程中,我将使用简单的功能(例如全部获取,添加和删除)来构建员工管理屏幕。 它看起来像这样:
......@@ -353,9 +353,9 @@ public class EmployeeManagerImpl implements EmployeeManager
## 3)Spring + Hibernate 集成
现在我们必须将Hibernate集成到应用中。 最好的地方是利用 Spring 的强大功能进行集成,以充分利用依赖注入来与不同的 ORM 一起使用。
现在我们必须将 Hibernate 集成到应用中。 最好的地方是利用 Spring 的强大功能进行集成,以充分利用依赖注入来与不同的 ORM 一起使用。
上面 **beans.xml** 文件中已经给出了 Spring 所需的Hibernate依赖关系。 您将需要的其他文件是:
上面 **beans.xml** 文件中已经给出了 Spring 所需的 Hibernate 依赖关系。 您将需要的其他文件是:
**hibernate.cfg.xml**
......
......@@ -19,7 +19,7 @@ Caused by: Unable to find interceptor class referenced by ref-name customStack -
## 原因:
默认情况下,Convention 插件使用其自己的软件包 Convention-default,其中不包含您在 struts.xml 中定义的软件包。 这意味着 Convention 将在其中放置您的操作的包不会扩展定义拦截器的包。
默认情况下,Convention 插件使用其自己的包 Convention-default,其中不包含您在 struts.xml 中定义的包。 这意味着 Convention 将在其中放置您的操作的包不会扩展定义拦截器的包。
![Random exceptions](img/bfcee52d8f51b09dd5024f261008e635.png)
......
......@@ -55,7 +55,7 @@ sleep()是一种用于将进程保留几秒钟或所需时间的方法,但是
主要区别在于,wait()释放锁定或监视器,而 sleep()不在等待期间释放任何锁或监视器。 通常,“等待”用于线程间通信,而“睡眠”用于引入执行暂停。
Thread.sleep()在一段时间内将当前线程发送到“不可运行”状态。 该线程将保留其已获取的监视器 - 即,如果该线程当前处于同步块或方法中,则其他线程无法进入该块或方法。 如果另一个线程调用 t.interrupt(),它将唤醒睡眠线程。 请注意,sleep 是一种静态方法,这意味着它始终会影响当前线程(正在执行 sleep 方法的线程)。 一个常见的错误是调用 t.sleep(),其中 t 是一个不同的线程。 即使这样,当前线程仍将Hibernate,而不是 t 线程。
Thread.sleep()在一段时间内将当前线程发送到“不可运行”状态。 该线程将保留其已获取的监视器 - 即,如果该线程当前处于同步块或方法中,则其他线程无法进入该块或方法。 如果另一个线程调用 t.interrupt(),它将唤醒睡眠线程。 请注意,sleep 是一种静态方法,这意味着它始终会影响当前线程(正在执行 sleep 方法的线程)。 一个常见的错误是调用 t.sleep(),其中 t 是一个不同的线程。 即使这样,当前线程仍将 Hibernate,而不是 t 线程。
object.wait()将当前线程发送到“ Not Runnable”状态,就像 sleep()一样,但要稍加调整。 Wait 是在对象而不是线程上调用的; 我们将此对象称为“锁定对象”。 在调用 lock.wait()之前,当前线程必须在锁对象上进行同步。 然后,wait()释放此锁定,并将线程添加到与该锁定关联的“等待列表”。 稍后,另一个线程可以在同一个锁对象上同步并调用 lock.notify()。 这将唤醒原始的等待线程。 基本上,wait()/ notify()就像 sleep()/ interrupt()一样,仅活动线程不需要直接指针指向睡眠线程,而仅需要指向共享锁对象的指针。
......@@ -116,7 +116,7 @@ protected acces 修饰符的作用与默认访问权限相同,除了子类还
公共访问修饰符意味着所有代码都可以访问类,字段,构造函数或方法,无论访问代码位于何处。
| ***修饰符*** | *相同的类别* | *相同的软件包* | *子类* | *其他软件* |
| ***修饰符*** | *相同的类别* | *相同的* | *子类* | *其他* |
| 上市 | 和 | Y | Y | Y |
| 受保护的 | Y | Y | Y | ñ |
| 默认 | Y | Y | N | N |
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册