开发工具分享
  • 首页
  • 计算科学
  • 文化旅游
  • 项目和网站
    • OSSEZ 计算技术
    • USRealEstate 社区
    • 地区文化
    • CWIKI.US
    • BUG.OSSEZ.COM
    • RSS.OSSEZ.COM
CWIKIUS.CN
一个有独立思考和温度的清新站
Computer Science

Java 依赖注入(DI)

只要做过 Java 一段时间,基本上都会遇到这个问题。 Dependency Injection (DI)中文称之为依赖注入。 都说了 Spring 的关键部分就是 Dependency Injection (DI),但是什么是依赖,为什么要注入,基本上没怎么找到使用简单文字说明的文章。 本文尝试用土话把这个问题说明白。 这里有 2 个概念,依赖和注入。 依赖 什么是依赖? 看看下面的代码 package com.ossez.java.legacy; public class MyApplication { private EmailService email = new EmailService(); public void processMessages(String msg, String rec){ //do some msg validation, manipulation logic etc this.email.sendEmail(msg, rec); } } 在 MyApplication 对象中,定义了一个 EmailService 对象。 那就说明 MyApplication 依赖 EmailService 对象。 假设如果我们在 MyApplication 对象中,不对 EmailService 对象进行初始化,猜猜会有什么? 空对象异常呀,因为被依赖的对象没有初始化,同时还有一个问题就是如果 EmailService 改变了 MyApplication 如何获得改变后的 EmailService 对象?     依赖注入 为了解决对象之间依赖同步的问题。 简单就是为了解决问题:如果 EmailService 改变了 MyApplication 如何获得改变后的 EmailService 对象? 这个解决方法就是注入依赖。 我们把依赖的对象注入到被依赖的对象中不就可以了。 Spring 容器 为了对依赖注入进行管理,我们可以手工进行管理,当然也可以使用框架,这个框架就是你常用的 Sring 容器。 我们把这个交给 Spring 的容器来进行管理,让我们更多的注重业务逻辑,而不是天天在空对象异常上徘徊。 这就是我们说的 DI 的意思。 https://www.ossez.com/t/java-di/14383

2023年04月21日 0Comments 495Browse 0Like Read more
Computer Science

J2EE,Java EE,Jakarta EE 命名之间的恩恩怨怨

介绍 简单来说,上面所有的名字指的都是一个东西 Java Platform, Enterprise Edition 上面的几个名词都是下面的内容的简写: J2EE(Java 2 Platform, Enterprise Edition) Java EE (Java Platform, Enterprise Edition) Jakarta EE(Jakarta Enterprise Edition) 上面的排序是按照时间演进来进行排序。 为什么叫 J2EE 1998年12月,SUN公司发布了JDK1.2,开始使用Java 2 这一名称。 第二年 Sun 公司联合IBM、Oracle、BEA 等大型企业应用系统开发商共同制订了一个基于Java 组件技术的企业应用系统开发规范,名字很自然就取为Java 2 Platform Enterprise Edition 简称J2EE。 最开始的时候 Sun 是希望这个标准和基于 Java 的扩展给企业用户用的。 按照 Java 版本的定义,Java 是不使用主版本的,所以自然就使用了数字 2。 这个就导致 J2EE 实在是难理解。 最令人郁闷的 EJB 就是 J2EE 中的内容,因为程序员实在烦躁这个 EJB 的容器管理和注入,所以就有了一个轻量的框架 Spring,这就是是另外一个演进路径了。 Java 1.0 的版本语言规范,现在还可以在伯克利的网站上找到:The Java Language Specification 随后在 1999 年发布的 1.2 版本中,有些扩展就从 Java 1.0 版本中拆分出来了,这些拆分的内容就被 Sun 用来作为 Java 的企业版来发布了。   对于拆分出来的有关企业部分的内容,需要一个新的名字,那么这个名字就自然的使用了 Java 2 Platform Enterprise Edition , 标准链接: Java 2 Platform, Enterprise Edition (J2EE) Overview 这个名字一直使用到了 2006 年了。 Java EE 在 2006 年 ,Java 1.5 版本发布了,J2EE 这个名字就停止使用了,确实这个名字也难理解。 J2EE 就被改成了 Java EE 或者 Java Platform Enterprise Edition 这个名字更加简单明了,去掉了比较有歧义的数字 2。 Jakarta EE 时间来到了 2017 年,这个时候 Java 已经属于 Oracle 了。 Oracle 捐 Java EE 给 Eclipse 基金会了。 按照 Oracle 的尿性,一般给点留点,Java 这几个字,Oracle 是肯定不会给的,Eclipse 拿到 Java EE 也没有办法用 Java 这个字。 咋办呀,改名字呗,Eclipse 经过社区的投票,就把 Java 改成了 Jakarta。 这一改,又和 Apache 的 Jakarta 重复了,其实也好,不管怎么样总算是有个名字了。 这就是现在有关 Java 企业版部分的内容就被称为 Jakarta EE 了。 下面的表格显示了 Jakarta EE 的版本演进史。 结论 简单一句话,上面这堆东西就是大部分可能都没有用到的 Java EE (Java 企业版)中的包。   https://www.ossez.com/t/j2ee-java-ee-jakarta-ee/14382

2023年04月21日 0Comments 558Browse 0Like Read more
Computer Science

Linux 安装 JDK 17 的时候提示字体错误

提示的错误信息如下: warning: ibm-semeru-open-17-jdk-17.0.6.10_0.36.0-1.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID 9bce9629: NOKEY error: Failed dependencies: dejavu-sans-fonts is needed by ibm-semeru-open-17-jdk-17.0.6.10_0.36.0-1.x86_64 说是缺少一个 dejavu-sans-fonts 字体。 直接运行命令: [root@devops-norctx-com yhu]# yum install dejavu-sans-fonts 安装就可以了。 https://www.ossez.com/t/linux-jdk-17/14376

2023年04月07日 0Comments 1011Browse 0Like Read more
Computer Science

Jenkins 如何配置 JDK

Jenkins 在编译的时候出现了一个问题是项目要求使用的是 JDK 17,但是 Jenkins 自己是运行在 JDK 11 上的,这样导致 Jenkins 没有办法进行编译。 Jenkins 中安装 JDK 的配置,也只能配置到 JDK 9。     问题和解决 这个问题其实是可以通过指定 JDK 的安装程序来解决的。 例如我们希望使用的是 JDK 17,我们可以使用 IBM 提供的 OpenJDK。 地址为: IBM Developer 然后选择 JDK 17 的版本。 在操作系统平台上选择 Linux。     然后通过右键,选择下载的地址,例如,我们找到的下载地址为:https://github.com/ibmruntimes/semeru17-binaries/releases/download/jdk-17.0.6%2B10_openj9-0.36.0/ibm-semeru-open-jdk_x64_linux_17.0.6_10_openj9-0.36.0.tar.gz 返回到 Jenkins,然后选择解压 zip 或者 tar.gz 文件。 然后选择安装器,把这个 JDK 装上去就可以了。 注意,这里有可能会装不上去,这是因为你操作系统的配置可能会导致这个问题。 直接配置系统中已有的 JDK 假设我们系统中已经有了 JDK 的多个版本。     直接在 Jenkins 上配置这个JDK 的路径就可以了 我们实际配置的路径为:/usr/lib/jvm/ibm-semeru-open-17-jdk     在项目的配置中,你是可以对使用的 JDK 进行配置的。     选择你需要的 JDK 就可以了。 https://www.ossez.com/t/jenkins-jdk/14374

2023年04月07日 0Comments 1953Browse 0Like Read more
Computer Science

IBM Semeru Runtime 17.0.6.0 在 Linux 下的安装

我们将在服务器上安装 17.0.6.0 JDK。 因为我们服务器还跑了 11 的 JDK,所以实际上有 2 套 JDK 在运行。 下载 rpm 包 我们使用的是 rpm 的安装方式,下载地址为:IBM Developer 运行下面的命令来进行下载: wget https://github.com/ibmruntimes/semeru17-binaries/releases/download/jdk-17.0.6%2B10_openj9-0.36.0/ibm-semeru-open-17-jdk-17.0.6.10_0.36.0-1.x86_64.rpm 安装 运行下面的命令来进行安装: [root@devops-norctx-com yhu]# rpm -Uvh ibm-semeru-open-17-jdk-17.0.6.10_0.36.0-1.x86_64.rpm 如果你遇到缺少字体的提示,请参考: Linux 安装 JDK 17 的时候提示字体错误 页面中的内容。 随后稍等下就完成安装了。     查看安装路径 运行命令: alternatives --config java 来查看当前操作系统下安装的路径。 例如我们: [root@devops-norctx-com yhu]# alternatives --config java There are 3 programs which provide 'java'. Selection Command ----------------------------------------------- + 1 java-11-openjdk.x86_64 (/usr/lib/jvm/java-11-openjdk-11.0.17.0.8-2.el8.x86_64/bin/java) * 2 java-1.8.0-openjdk.x86_64 (/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.352.b08-2.el8.x86_64/jre/bin/java) 3 /usr/lib/jvm/ibm-semeru-open-17-jdk/bin/java Enter to keep the current selection[+], or type selection number: 如果不想更改,直接退出就可以了。   https://www.ossez.com/t/ibm-semeru-runtime-17-0-6-0-linux/14375

2023年04月07日 0Comments 672Browse 0Like Read more
Computer Science

IntelliJ IDEA 2023.1 版本添加了包中类的列表功能

知道在一个包下面有什么类。 可以在新版的 IntelliJ IDEA 2023.1 中把鼠标移动到包上面。 在包上面就可以看到这个包下面的类了。     这个功能还不错呢,能知道这个包下面有什么东西。 https://www.ossez.com/t/intellij-idea-2023-1/14371

2023年04月01日 0Comments 675Browse 0Like Read more
Computer Science

WordPress 插件 g5plus 修改属性

其他使用 G5 主题的 WordPress 插件可以使用相同的方法进行修改。 具体的方法可以通过修改 PHP 文件的方法来进行修改,这个修改方法的问题是,如果你对插件进行了更新,那么你还需要重复这个修改,因为更新的文件会把你的修改覆盖掉。 修改编辑器 编辑 \plugins\darna-framework\includes\shortcodes\portfolio 路径下的 portfolio.php 文件,找到这个文件中有关字段的数组定义。     把不需要的字段从这个数组列表中进行删除。     修改前端的页面显示 编辑 \plugins\darna-framework\includes\shortcodes\portfolio\templates\single 路径下的 small-slider.php 文件。 根据你的需要对 HTML 代码进行下修改。     我们的需求非常简单就是不显示左侧的内容,因此我们直接删除掉这个 Div 就可以了。   https://www.ossez.com/t/wordpress-g5plus/14372

2023年04月01日 0Comments 509Browse 0Like Read more
Computer Science

Jenkins 修改启动的端口

在默认情况下 Jenkins 使用的端口是 8080。 这个端口可能会与当前服务器上运行的很多程序有冲突,所以我们可能会希望对这个运行的默认端口进行修改。 需要修改的文件为:/etc/default/jenkins     打开文件后,把 HTTP_PORT 参数修改为你希望的参数后保存重启 Jenkins 就可以了。 https://www.ossez.com/t/jenkins/14370

2023年04月01日 0Comments 483Browse 0Like Read more
Computer Science

Spring 项目运行提示错误 Not a managed type

在启动 Spring 项目的时候提示下面的错误信息。     问题和原因 这个问题的原因是你的类没有在 Spring 管理的容器中注册。 主要原因是上面的包的路径不正确。     修改上面的包的路径后重启服务就可以解决启动的时候对象没有注册的问题。   https://www.ossez.com/t/spring-not-a-managed-type/14368

2023年04月01日 0Comments 877Browse 0Like Read more
Computer Science

Linux 查看 SELinux 的状态

可以运行下面的命令来查看当前服务配置的 SELinux 的状态。 getenforce 上面的输出状态显示了当前 SELinux 的配置状态。 如果上图显示当前的状态。 临时禁用 SELinux 。 使用下面的命令来临时禁用 SELinux。 setenforce 0   https://www.ossez.com/t/linux-selinux/14365

2023年04月01日 0Comments 643Browse 0Like Read more
1…9192939495…309
Archives
  • July 2026
  • June 2026
  • May 2026
  • April 2026
  • March 2026
  • February 2026
  • January 2026
  • December 2025
  • November 2025
  • October 2025
  • September 2025
  • August 2025
  • July 2025
  • June 2025
  • May 2025
  • April 2025
  • March 2025
  • February 2025
  • January 2025
  • December 2024
  • November 2024
  • October 2024
  • September 2024
  • August 2024
  • July 2024
  • June 2024
  • May 2024
  • April 2024
  • March 2024
  • February 2024
  • January 2024
  • December 2023
  • November 2023
  • October 2023
  • September 2023
  • August 2023
  • July 2023
  • June 2023
  • May 2023
  • April 2023
  • December 2022
  • November 2022
  • October 2022
  • September 2022
  • August 2022
  • May 2022
  • April 2022
  • March 2022
  • February 2022
  • January 2022
  • December 2021
  • November 2021
  • October 2021
  • September 2021
  • August 2021
  • July 2021
  • June 2021
  • May 2021
  • April 2021
  • March 2021
  • February 2021
  • January 2021
  • December 2020
  • November 2020
  • October 2020
  • September 2020
  • August 2020
  • July 2020
  • June 2020
  • May 2020
  • April 2020
  • March 2020
  • February 2020
  • January 2020
  • December 2019
  • November 2019
  • October 2019
  • September 2019
  • August 2019
  • July 2019
  • June 2019
  • May 2019
  • April 2019
  • March 2019
  • February 2019
  • January 2019
  • December 2018
  • November 2018
  • October 2018
  • September 2018
  • August 2018
  • July 2018
  • June 2018
  • May 2018
  • April 2018
  • March 2018
Categories
  • Computer Science (2,385)
    • Confluence (663)
    • Gradle (12)
  • U.S. (557)
  • 文化旅游 (146)

COPYRIGHT © 2020 CWIKIUS. ALL RIGHTS RESERVED.

THEME KRATOS MADE BY VTROIS

湘ICP备2020018253号-1