- 博客(360)
- 资源 (88)
- 问答 (1)
- 收藏
- 关注

原创 分享大型Java多用户商城系统开发历程
最近公司要搞商城,让我多方咨询,最后看了很多,要不就是代码、表字段注释不全,要不就是bug多,要么就是文档缺少,最后决定自己开发一套商城。下面是开发的一些心得体会,权且记录下来,给自己做个记录把。本人QQ:4407509,有问题可以联系本人之前一直都是在从事电商相关和互联网金融开发,处理过亿级数据量,所以被目前这家公司看重。由于Java是开源的,最近几年
2017-02-25 18:12:39
873
原创 Swing 文本编辑器的实现
(3) 无论是从菜单栏还是工具栏选择“打开”文件操作时都是调用 openTextFile() 方法。该方法会弹出文件选择器让用户选择一个文件,然后使用文件流获取文件属性和读取文件的内容,再把信息呈现到界面上。其中用到了菜单、工具栏以及选项卡等组件,是一个综合类的应用,主要实现步骤如下。(4) 运行程序,单击“打开”按钮,选择一个 TXT 文件。单击“退出”按钮,可以关闭程序。(2) 在构造方法中布局的设置,包括窗口大小、菜单栏和菜单项、工具栏,以及对各个组件的事件监听,主要实现代码如下所示。
2024-12-18 12:23:55
157
原创 Swing 选项卡组件
使用选项卡可以在有限的布局空间内展示更多的内容。Swing 使用 JTabbedPane 类实现选项卡。JTabbedPane 类创建的选项卡可以通过单击标题或者图标在选项卡之间进行切换。JTabbedPane 类的常用构造方法如下所示。创建了 JTabbedPane 实例之后,可使用 addTab() 方法和 insertTab() 方法将选项卡/组件添加到 TabbedPane 对象中。
2024-12-18 12:16:35
760
原创 Swing 树组件
如果要显示一个层次关系分明的一组数据,用树结构是最合适的。树如同 Windows 资源管理器的左半部,可通过单击文件夹展开或者收缩内容。使用 JTree 类实现树,它的主要功能是把数据按照树状进行显示,其数据来源于其他对象。JTree 树中最基本的对象叫作节点,表示在给定层次结构中的数据项。树以垂直方式显示数据,每行显示一个节点。树中只有一个根节点,所有其他节点从这里引出。除根节点外,其他节点分为两类:一类是代子节点的分支节点,另一类是不带子节点的叶节点。
2024-12-18 12:14:23
245
原创 Swing 表格
表格是新增加的组件,主要功能是把数据以二维表格的形式显示出来,并且允许用户对表格中的数据进行编辑。表格组件是最复杂的组件之一,它的表格模型功能非常强大、灵活而易于执行。由于篇幅有限,本节只介绍默认的表格模型。Swing 使用 JTable 类实现表格,常用构造方法如下所示。创建一个带有滚动条的 JTable 对象非常简单,如下所示。第一条语句创建了一个 JTable 对象。第二条语句创建了一个存放 JTable 对象的 JScrollPane 对象,该对象是一个视图对象。
2024-12-18 12:12:20
647
原创 Swing 对话框组件
对话框通常用作从用户处接收附加信息,或者提供发生了某种事件的通知。Java 提供了 JOptionPane 类,用来创建标准对话框,也可以通过扩展 JDialog 类创建自定义的对话框。JOptionPane 类可以用来创建 4 种类型的标准对话框:确认对话框、消息对话框、输入对话框和选项对话框。
2024-12-17 13:35:51
448
原创 Swing 文件选择器和颜色选择器
在开发应用程序时经常需要选择文件和选择颜色的功能。例如,从选择的文件中导入数据,为窗体选择背景颜色等。本节详细介绍 Swing 中文件选择器和颜色选择器的使用。
2024-12-17 13:30:49
567
原创 Swing 工具栏组件
工具栏提供了一个用来显示常用按钮和操作的组件。它可以把任意类型的组件附加到工具条上,但是通常是增加按钮。工具栏 JToolBar 类的常用构造方法如表 1 所示。构造方法说明JToolBar()创建新的工具栏,默认的方向为 HORIZONTAL创建具有指定 orientation 的新工具栏创建一个具有指定 name 的新工具栏创建一个具有指定 name 和 orientation 的新工具栏与 JMenuBar 不一样,JToolBar 对象可以直接被添加到容器中。
2024-12-17 13:28:23
696
原创 Swing 菜单和弹出式菜单
菜单由中的 JMenu 类实现,可以包含多个菜单项和带分隔符的菜单。在菜单中,菜单项由 JMenuItem 类表示,分隔符由 JSeparator 类表示。菜单本质上是带有关联 JPopupMenu 的按钮。当按下“按钮”时,就会显示 JPopupMenu。如果“按钮”位于 JMenuBar 上,则该菜单为顶层窗口。如果“按钮”是另一个菜单项,则 JPopupMenu 就是“下拉”菜单。
2024-12-17 13:26:53
848
原创 Swing 计时器组件
计时器(Timer)组件可以在指定时间间隔触发一个或多个 ActionEvent。设置计时器的过程包括创建一个 Timer 对象,在该对象上注册一个或多个动作侦听器,以及使用 start() 方法启动该计时器。例如,以下代码创建并启动一个每秒(该时间由 Timer 构造方法的第一个参数指定)触发一次动作事件的计时器。Timer 构造方法的第二个参数指定接收计时器动作事件的监听器。创建 Timer 类时要指定一个延迟参数和一个 ActionListener。
2024-12-17 13:24:38
400
原创 Swing 进度条组件
进度条(JProgressBar)是一种以可视化形式显示某些任务进度的组件。JProgressBar 类实现了一个用于为长时间的操作提供可视化指示器的 GUI 进度条。在任务的完成进度中,进度条显示该任务完成的百分比。此百分比通常由一个矩形以可视化形式表示,该矩形开始是空的,随着任务的完成逐渐被填充。此外,进度条可显示此百分比的文本表示形式。JProgressBar 类的常用构造方法和 JSlider 类的常用构造方法一样,这里不再重复。
2024-12-17 13:22:08
569
原创 Swing 滑块组件
在前面的章节中,我们介绍了 Swing 设计简单界面所需的窗口、布局组件以及如何响应事件。Swing 还提供了很多高级组件,如菜单栏、工具栏、文件选择器、表格以及树等。使用这些高级组件可以实现更为复杂的布局,也可以使程序界面更加人性化,以提高程序的灵活性。在之后的章节中,我们将开始详细介绍这些高级组件。在学习其他高级组件之前,我们先来介绍一些布局组件,包括滑块、进度条、计时器、菜单栏和工具栏,本节我们首先来介绍滑块。滑块(JSlider)是一个允许用户在有限区间内通过移动滑块来选择值的组件。
2024-12-17 11:53:48
669
原创 Swing 星座选择器界面的实现
在了解各种基本组件的使用,以及常见事件的处理之后,本案例将综合文本框、按钮和下拉列表组件,实现一个星座选择器程序。程序分别监听了按下“新增”按钮和“删除”按钮时的单击事件,以及从下拉列表中选择项时的选中事件。(7) 在文本框中输入要添加的项并单击“新增”按钮,在下拉列表中将出现添加的项。(2) 创建 SampeDemo 构造方法完成窗口的创建,按钮和下拉列表的添加,以及相应事件的监听。(5) 运行程序,在下拉列表中会出现 4 个选项,选择其中的“狮子座”项,此时显示效果如图 1 所示。
2024-12-17 11:51:15
110
原创 Swing 事件监听:事件处理模型和事件监听器
事件表示程序和用户之间的交互,例如在文本框中输入,在列表框或组合框中选择,选中复选框和单选框,单击按钮等。事件处理表示程序对事件的响应,对用户的交互或者说对事件的处理是事件处理程序完成的。当事件发生时,系统会自动捕捉这一事件,创建表示动作的事件对象并把它们分派给程序内的事件处理程序代码。这种代码确定了如何处理此事件以使用户得到相应的回答。
2024-12-17 11:47:19
478
原创 Swing 计算器界面的实现
在本节之前已经详细介绍了 Swing 中容器、布局管理器以及常用的基本组件。计算器界面可以分成两部分,即显示区和键盘区。显示区可以使用文本框组件,键盘区则是由很多按钮组成,可以使用网格布局管理器。详细的实现过程如下。(3) 在构造方法中设置窗口的标题和大小等属性,然后使用边界面板向北部添加一个 JTextField 组件,主要代码如下所示。(4) 接下来使用网格布局管理器添加多个按钮作为计算器的键盘区,主要代码如下所示。(2) 为类添加构造方法和 main() 方法,主要代码如下所示。
2024-12-17 11:42:36
280
原创 Swing 列表框组件
列表框与下拉列表的区别不仅仅表现在外观上,当激活下拉列表时,会出现下拉列表框中的内容。但列表框只是在窗体系上占据固定的大小,如果需要列表框具有滚动效果,可以将列表框放到滚动面板中。当用户选择列表框中的某一项时,按住 Shift 键并选择列表框中的其他项目,可以连续选择两个选项之间的所有项目,也可以按住 Ctrl 键选择多个项目。Swing 中使用 JList 类来表示列表框,该类的常用构造方法如下。
2024-12-16 11:24:13
247
原创 Swing 下拉列表组件
下拉列表的特点是将多个选项折叠在一起,只显示最前面的或被选中的一个。选择时需要单击下拉列表右边的下三角按钮,这时候会弹出包含所有选项的列表。用户可以在列表中进行选择,也可以根据需要直接输入所要的选项,还可以输入选项中没有的内容。下拉列表由 JComboBox 类实现,常用构造方法如下。JComboBox 类提供了多个成员方法用于操作下拉列表框中的项,如表 1 所示。方法名称说明将指定的对象作为选项添加到下拉列表框中在下拉列表框中的指定索引处插入项在下拉列表框中删除指定的对象项。
2024-12-16 10:59:13
248
原创 Swing 单选按钮组件
单选按钮与复选框类似都有两种状态,不同的是一组单选按钮中只能有一个处于选中状态。中 JRadioButton 类实现单选按钮,它与 JCheckBox 一样都是从 JToggleButton 类派生出来的。JRadioButton 通常位于一个 ButtonGroup 按钮组中,不在按钮组中的 JRadioButton 也就失去了单选按钮的意义。在同一个 ButtonGroup 按钮组中的单选按钮,只能有一个单选按钮被选中。
2024-12-16 10:22:40
448
原创 Swing 复选框组件
一个复选框有选中和未选中两种状态,并且可以同时选定多个复选框。Swing 中使用 JCheckBox 类实现复选框,该类的常用构造方法如下。
2024-12-16 10:07:10
272
原创 Swing 文本域组件
文本域与文本框的最大区别就是文本域允许用户输入多行文本信息。在 Swing 中使用 JTextArea 类实现一个文本域,其常用构造方法如下。JTextArea 类的常用方法如表 1 所示。方法名称说明将字符串 str 添加到文本域的最后位置设置文本域的行数设置文本域的列数获取文本域的行数设置文本域的换行策略获取文本域的列数插入指定的字符串到文本域的指定位置将指定的开始位 start 与结束位 end 之间的字符串用指定的字符串 str 取代。
2024-12-16 09:49:21
274
原创 Swing 单行文本框组件
Swing 中使用 JTextField 类实现一个单行文本框,它允许用户输入的文本信息。该类的常用构造方法如下。JTextField 类的常用方法如表 1 所示。方法名称说明获得文本框的首选大小向左或向右滚动文本框中的内容设置文本框最多可显示内容的列数设置文本框的字体设置文本框的滚动偏移量(以像素为单位)设置文本框内容的水平对齐方式。
2024-12-16 09:37:39
289
原创 Swing 按钮组件
按钮是图形界面上常见的元素,在前面已经多次使用过它。在 Swing 中按钮是 JButton 类的对象,JButton 类的常用构造方法如下。JButton 类的常用方法如表 1 所示。方法名称说明为按担组件注册 ActionListener 监听设置按钮的默认图标设置按鈕的文本设置按钮边框和标签之间的空白设置按钮的键盘快捷键,所设置的快捷键在实际操作时需要结合Alt 键进行实现设置按下按钮时的图标设置选择按鈕时的图标设置鼠标移动到按扭区域时的图标设置按钮无效状态下的图标。
2024-12-16 09:27:19
657
原创 Swing 标签组件
在添加了容器并指定了布局管理方式之后,便可以向容器中添加各种展示类的组件,像标签、按钮、单选和多选框等。本节将介绍 Swing 中标签组件的用法。标签是一种可以包含文本和图片的非交互组件,其文本可以是单行文本,也可以是 HTML 文本。对于只包含文本的标签可以使用 JLabel 类,该类的主要构造方法有如下几种形式。JLabel 的常用方法如表 1 所示。方法名称说明定义 JLabel 将要显示的单行文本定义 JLabel 将要显示的图标。
2024-12-13 20:08:34
341
原创 Swing 布局管理器
在使用 Swing 向容器添加组件时,需要考虑组件的位置和大小。如果不使用布局管理器,则需要先在纸上画好各个组件的位置并计算组件间的距离,再向容器中添加。这样虽然能够灵活控制组件的位置,实现却非常麻烦。为了加快开发速度,Java 提供了一些布局管理器,它们可以将组件进行统一管理,这样开发人员就不需要考虑组件是否会重叠等问题。本节介绍 Swing 提供的 6 种布局类型,所有布局都实现 LayoutManager 接口。
2024-12-13 16:42:41
890
原创 Swing 窗口容器和面板容器
在 Swing 中,任何其他组件都必须位于一个顶层容器中。JFrame 窗口和 JPanel 面板是常用的顶层容器,本节详细介绍这两个容器的使用方法。
2024-12-13 16:34:46
1045
原创 Swing 简介
Swing 是新一代的图形界面工具。使用 Swing 来开发图形界面比 AWT 更加优秀,因为 Swing 是一种轻量级组件,它采用纯 Java 实现,不再依赖于本地平台的图形界面,所以可以在所有平台上保持相同的运行效果,对跨平台支持比较出色。除此之外,Swing 提供了比 AWT 更多的图形界面组件,因此可以开发出美观的图形界面程序。
2024-12-13 16:31:51
853
原创 Spring Security 权限控制
在前面的章节中,已经给大家介绍了Spring Security的很多功能,在这些众多功能中,我们知道其核心功能其实就是 认证+授权。
2024-09-19 06:40:15
218
原创 Spring Security 自动登录和注销登录
实现接口:PersistentTokenRepository@Service@Resource@Override@Override@Override@Override自定义token实体类以及表@Data@Mapper配置token显然,两种方案都存在cookie被盗取导致身份被暂时利用的可能,如果有更高的安全性需求,建议使用Spring Security提供的令牌持久化方案。
2024-09-19 06:36:19
216
原创 Spring Security OAuth2
一种用于授权的开放标准,用于允许用户授权第三方应用访问其受保护的资源,而无需将其凭据直接提供给第三方应用。OAuth 2.0通过使用访问令牌来实现授权,该令牌由授权服务器颁发给第三方应用,以便访问用户受保护的资源。OAuth 2.0还提供了一种用于验证用户身份和授权的流程,包括重定向用户到授权服务器以获取授权码,然后交换该授权码以获取访问令牌。OAuth 2.0已经成为许多互联网服务和应用程序的标准授权机制,包括社交媒体平台、API服务和移动应用程序。
2024-09-19 06:26:13
184
原创 Spring Security RBAC权限管理
RBAC基于角色的权限访问控制(Role-Based Access Control)是商业系统中最常见的权限管理技术之一。RBAC是一种思想,任何编程语言都可以实现,其成熟简单的控制思想 越来越受广大开发人员喜欢。在RBAC中,权限与角色相关联,用户通过成为适当角色的成员而得到这些角色的权限。这就极大地简化了权限的管理。在一个组织中,角色是为了完成各种工作而创造,用户则依据它的责任和资格来被指派相应的角色,用户可以很容易地从一个角色被指派到另一个角色。
2024-09-19 06:24:31
149
原创 Spring Security 权限控制
在前面的章节中,已经给大家介绍了Spring Security的很多功能,在这些众多功能中,我们知道其核心功能其实就是 认证+授权。
2024-09-19 06:21:34
2932
原创 Spring Security CSRF跨域请求伪造的防护
随着Web应用程序的普及和发展,网络攻击成为了一个严重的问题。其中,CSRF(Cross-Site Request Forgery)攻击是一种非常常见的攻击方式。攻击者可以利用这种漏洞欺骗用户执行恶意操作,如恶意转账、修改用户信息等。为了提高应用程序的安全性,我们必须采取措施保护Web应用程序,其中之一就是CSRF保护机制。本文将介绍Spring Security中的CSRF保护机制,并提供一些示例和实践建议,以帮助开发人员实现更安全的Web应用程序。
2024-09-18 20:47:44
137
原创 Spring Security 整合JWT
Json Web Token 的简称就是 JWT,通常可以称为 Json 令牌。它是RFC 7519 中定义的用于安全的将信息作为 Json 对象进行传输的一种形式。JWT 中存储的信息是经过数字签名的,因此可以被信任和理解。可以使用 HMAC 算法或使用 RSA/ECDSA 的公用/专用密钥对 JWT 进行签名。使用 JWT 主要用来下面两点认证(Authorization):这是使用 JWT 最常见的一种情况,一旦用户登录,后面每个请求都会包含 JWT,从而允许用户访问该令牌所允许的路由、服务和资源。
2024-09-18 20:38:13
140
原创 Spring Security 会话管理
只需在两个浏览器中用同一个账号登录就会发现,到目前为止,系统尚未有任何会话并发限制。一个账户能多处同时登录可不是一个好的策略。事实上,Spring Security已经为我们提供了完善的会话管理功能,包括会话固定攻击、会话超时检测以及会话并发控制。
2024-09-18 18:28:11
181
原创 Spring Security 实现图形验证码
在Spring Security中,实现验证码校验的方式有很多种,最简单的方式就是自定义一个专门处理验证码逻辑的过滤器,将其添加到Spring Security过滤器链的合适位置。当匹配到登录请求时,立刻对验证码进行校验,成功则放行,失败则提前结束整个验证请求。说到Spring Security的过滤器,我们先回顾一下前面使用过的配置。//@EnableWebSecurity:开启SpringSecurity 之后会默认注册大量的过滤器servlet filter。
2024-09-18 18:22:53
218
请问分布式事务如何做?
2021-10-28
TA创建的收藏夹 TA关注的收藏夹
TA关注的人