胜软 java开发(一面)15min-爱代码爱编程
胜软 Java开发(一面) 15min
1、自我介绍
2、HTTP/HTTPS 区别 以及如何实现的?
区别:
HTTP和HTTPS是两种不同的网络通信协议。HTTP(HyperText Transfer Protocol)是一种应用层协议,用于在Web浏览器和Web服务器之间传输超文本文档,是Web数据通信的基础协议。HTTPS(HyperText Transfer Protocol Secure)则是一种基于TLS/SSL的安全协议,它在HTTP的基础上添加了数据加密和身份验证的功能,提供更加安全的数据传输方式。
HTTP和HTTPS的主要区别在于安全性方面。HTTP传输的数据不加密,因此可能会被第三方窃取或篡改,而HTTPS通过TLS/SSL协议对数据进行加密,使得传输的数据在传输过程中不易被窃取或篡改。此外,HTTPS还可以对服务器的身份进行验证,确保客户端与正确的服务器进行通信,防止中间人攻击。
实现:
-
申请并获取SSL/TLS证书:为了使用HTTPS协议,需要在Web服务器上安装SSL/TLS证书。可以从一些受信任的CA机构(如Symantec、Comodo等)购买证书,也可以使用免费的证书颁发机构(如Let’s Encrypt)颁发证书。
-
配置Web服务器:安装证书后,需要在Web服务器上配置HTTPS支持,通常需要将证书文件和私钥文件配置到Web服务器上。
-
修改应用程序代码:使用HTTPS需要在应用程序中修改HTTP请求和响应的处理方式,以支持SSL/TLS协议的加密和解密。一般来说,可以使用开源框架(如Spring Boot)来方便地实现HTTPS支持。
总之,HTTPS比HTTP更加安全,适合于需要保护用户隐私和敏感数据的Web应用程序。
3、Vue的生命周期是什么?
- beforeCreate(创建前)
- created(创建后)
- beforeMount(载入前)
- mounted(载入后)
- beforeUpdate(更新前)
- updated(更新后)
- beforeDestroy(销毁前)
- destroyed(销毁后)
4、Maven 怎么配置
配置环境变量、修改配置文件、在常用IDE下配置Maven。
(如果知道更多,可以讲一下更多细节)
5、将项目放在Linux 中执行有哪些操作?
将项目放在Linux中执行,一般需要进行以下几个操作:
-
安装必要的软件:在Linux服务器上安装必要的软件,例如Java运行环境、Web服务器(如Apache或Nginx)、数据库等。
-
将项目文件上传到服务器:使用FTP或SCP等工具将项目文件上传到Linux服务器上。可以将项目文件打包成压缩文件(如ZIP或Tarball),以便更方便地传输和部署。
-
解压项目文件:如果将项目文件打包成压缩文件上传,则需要在Linux服务器上解压项目文件。可以使用tar命令或unzip命令进行解压操作。
-
配置项目:在Linux服务器上配置项目文件,例如配置数据库连接、配置Web服务器等。
-
启动项目:启动项目需要运行相应的脚本或命令。例如,在Java项目中可以使用Maven或Gradle构建项目并运行,或者直接运行Java命令启动应用程序。在Web项目中,可以使用Web服务器的启动脚本启动Web服务器并部署项目。
-
监控和维护项目:在Linux服务器上需要监控项目运行状态,如查看日志、检查服务器性能等。如果项目出现故障,则需要对项目进行维护,例如重新启动应用程序、清理缓存等操作。
总之,将项目放在Linux中执行需要进行一些额外的操作,包括安装软件、上传和解压文件、配置项目和启动项目等。同时,需要对项目进行监控和维护,以确保项目稳定运行。
6、如果Maven有两个不同版本应该如何兼容?如果让你从百度搜索,应该从哪个方向搜索?
如果Maven有两个不同版本,需要进行兼容处理。以下是一些可能的方法:
-
确定Maven版本范围:在项目中指定Maven的版本范围,例如使用Maven 3.x.x系列,以确保在同一范围内的版本都可以兼容。可以使用Maven自带的Dependency Management功能来指定版本范围。
-
使用适当的插件:使用适当的插件来确保两个不同版本的Maven可以协同工作。例如,如果需要在不同版本的Maven中使用相同的插件,则需要使用与两个版本兼容的插件版本。
-
使用命令行参数:可以使用命令行参数来指定使用哪个版本的Maven。例如,在运行Maven命令时,使用-D参数来指定Maven的版本号。
-
使用不同的构建环境:如果需要同时使用两个不同版本的Maven,可以将它们安装在不同的构建环境中,并在需要的时候切换环境。例如,在Linux上可以使用环境变量来切换Maven版本。
-
更新依赖项:更新依赖项的版本,以确保与两个版本的Maven兼容。可以使用Maven自带的Dependency Management功能来管理依赖项的版本。
总之,如果Maven有两个不同版本,需要进行兼容处理。可以使用指定版本范围、适当的插件、命令行参数、不同的构建环境或更新依赖项等方法来实现兼容。
7、图片如果放在本地,应该如何实现图片上传?
在基于SpringBoot的商城管理系统中,将所需的图片放在本地,可以通过以下步骤来实现图片上传:
在SpringBoot项目中添加依赖项。可以使用SpringBoot提供的spring-boot-starter-web依赖项,它已经包含了Spring MVC和其他与Web相关的依赖项。
在SpringBoot项目的配置文件中,配置上传文件的大小限制、上传文件的存储路径等信息。可以使用SpringBoot提供的MultipartProperties类来配置相关信息。
在SpringBoot项目的控制器中,添加上传文件的处理器。可以使用Spring MVC提供的@RequestParam注解来接收上传的文件,并使用Java I/O流来将上传的文件保存到本地存储路径中。
在前端页面中,添加文件上传的表单。可以使用HTML的form表单和input标签的type="file"属性来实现文件上传。
下面是一个示例代码片段:
在application.properties配置文件中添加以下配置:
# 配置上传文件的大小限制
spring.servlet.multipart.max-file-size=100MB
spring.servlet.multipart.max-request-size=100MB
# 配置上传文件的存储路径
spring.servlet.multipart.location=uploads/
在控制器中添加文件上传的处理器:
@PostMapping("/upload")
public String handleFileUpload(@RequestParam("file") MultipartFile file) throws IOException {
// 获取上传文件的名称
String fileName = StringUtils.cleanPath(file.getOriginalFilename());
// 创建上传文件的存储路径
Path uploadPath = Paths.get("uploads/");
if (!Files.exists(uploadPath)) {
Files.createDirectories(uploadPath);
}
// 将上传文件保存到本地存储路径
try (InputStream inputStream = file.getInputStream()) {
Files.copy(inputStream, uploadPath.resolve(fileName), StandardCopyOption.REPLACE_EXISTING);
}
// 返回上传文件的URL
String fileUrl = "/uploads/" + fileName;
return fileUrl;
}
在前端页面中添加文件上传的表单:
<form method="POST" action="/upload" enctype="multipart/form-data">
<input type="file" name="file">
<button type="submit">上传文件</button>
</form>
总之,在基于SpringBoot的商城管理系统中,将所需的图片放在本地,可以通过以上步骤来实现图片上传。在控制器中添加文件上传的处理器,配置上传文件的大小限制、上传文件的存储路径等信息,以及在前端页面中添加文件上传的表单,即可实现图片上传功能。
8、模糊查询使用的like(like效率很低),应该如何提高效率或者优化?
在数据库中进行模糊查询使用LIKE操作符,由于LIKE操作符需要遍历整个表来进行匹配,因此效率较低,尤其是在大表中。以下是一些优化策略,可以帮助提高LIKE操作符的效率:
-
前缀匹配:如果可以确定搜索字符串的前缀,可以使用前缀匹配的方式来提高查询效率。例如,如果要搜索以“abc”开头的字符串,可以使用“LIKE ‘abc%’”的方式来查询,这样数据库可以使用索引进行匹配。
-
使用全文检索:全文检索可以快速地对文本进行搜索,相对于LIKE操作符,效率更高。例如,可以使用MySQL提供的全文检索引擎,如MyISAM或InnoDB的全文检索功能来提高查询效率。
9、Redis在项目哪里使用到了
缓存