Javase | Java工具类、(SSM)各种依赖的作用

目录:

    • Java工具类:
      • 日期工具类
      • 文件上传工具类
    • 短信工具类
      • 验证码工具类
      • 邮件工具类
      • 代码生成器
    • (SSM)各种依赖的作用:
      • spring-context 依赖:
      • spring-context-supprt 依赖:
      • spring-tx 依赖:
      • mysql-connector-java 依赖:
      • spring-jdbc 依赖:
      • spring-data-jpa 依赖:
      • mybatis 依赖 :
      • mybatis-spring 依赖:
      • mybatis-plus 依赖:
      • spring-web 依赖:
      • spring-webmvc 依赖 :
      • freemarker 依赖:
      • junit 依赖 :
      • spring-test 依赖:
      • kaptcha 依赖 :
      • druid 依赖 :
      • druid 与 mybatis-plus 的区别:
      • jackson-databind 依赖 :
      • springfox-swagger2 依赖:
      • javax.servlet-api 依赖:
      • jackson-databind 依赖 :
      • commons-fileupload 依赖:
      • commons-io 依赖
      • commons-logging 依赖
      • commons-lang
      • commons-beanutils 依赖:
      • commons-collections 依赖 :
      • spring-core 依赖:
      • spring-jdbc 依赖:
      • spring-aspects 依赖:
      • webjars-locator 依赖:
      • logback-classic 依赖 :
      • jstl 依赖
      • quartz 依赖
      • slf4j-api 依赖
      • log4j 依赖:
      • slf4j-log4j12 依赖:
      • spring-context 依赖 :
      • spring-core:
      • spring-beans:
      • spring-aspects 依赖:
      • spring-aop 依赖:
      • Spring Ioc 依赖:
      • c3p0 依赖 :
      • mchange-commons-java 依赖
      • json-lib 依赖 :
      • ezmorph 依赖:
      • lombok 依赖:
      • freemarker 依赖:
      • mail 依赖:
      • dom4j 依赖:
      • commons-httpclient 依赖
      • poi 依赖 :
      • poi-ooxml 依赖
      • itext7-core 依赖
      • springfox-swagger2 依赖
      • spring-security-config 依赖:
      • spring-security-taglibs 依赖:
      • jsr250 依赖:

Java工具类:

日期工具类

public class DateUtils {  // 日期工具类public static String nowTime(){SimpleDateFormat simpleDateFormat=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");return simpleDateFormat.format(new Date());}
}

文件上传工具类

public class FileUpLoadUtils {  //文件上传工具类@AutowiredDocService docService;/***  文件上传方法*/public static DataResults Fileupload(MultipartFile file, HttpServletRequest request, Doc doc, DocService docService) {try {//1.获取原始文件名String uploadFileName = file.getOriginalFilename();System.out.println("要上传的原始文件名字是:" + uploadFileName);//2.截取文件扩展名String extendName = uploadFileName.substring(uploadFileName.lastIndexOf(".") + 1, uploadFileName.length());//3.把文件加上随机数,防止文件重复String uuid = UUID.randomUUID().toString().replace("-", "").toUpperCase();//4.生成的新的服务器文件名String newfileName = uuid + "." + extendName;System.out.println("生成的新的服务器文件名是:" + newfileName); //防止服务器文件名重名//5.获取真实的服务器文件上传地址 (文件的存储位置)String filePath = request.getServletContext().getRealPath("/doc") + "/" + newfileName;System.out.println("服务器运行目录,最终上传的路径:" + filePath);//6.执行上传file.transferTo(new File(filePath));System.out.println("文件上传结束!");//新增对象到数据库doc.setFileName(newfileName);boolean b=docService.save(doc);// DataResults : 数据结果工具类,作用: 显示方法的执行状态,该方法中参数为// ResultCode:   状态码枚举if (b) {return DataResults.success(ResultCode.SUCCESS);} else {return DataResults.fail(ResultCode.FAIL);}} catch (IOException e) {e.printStackTrace();return DataResults.fail(ResultCode.FAIL);}}
}

短信工具类

/*** 短信工具类*/
public class SendsMsgUtf8Utils {//请求地址private static String Url = "http://106.ihuyi.cn/webservice/sms.php?method=Submit";// contentInfo:前后端传进来的要发送的信息的内容public static String sengMessage(String phone,String contentInfo) throws Exception {HttpClient client = new HttpClient();PostMethod method = new PostMethod(Url);client.getParams().setContentCharset("UTF-8");method.setRequestHeader("ContentType","application/x-www-form-urlencoded;charset=UTF-8");/***  随机的验证码 -- 将该随机生成的"验证码"用在信息模板中, 当然也可以用 contentInfo(传进来的信息参数)用于信息模板中*/int mobile_code = (int)((Math.random()*9+1)*100000);/***  信息模板,按照此格式发送信息,只有“验证码”(mobile_code)处的变量可改, 可改成传进来的 contentInfo 参数*  想要发其他的信息模板可上官网寻找、或上官网申请模板*/String content = new String("您的验证码是:" + mobile_code + "。请不要把验证码泄露给其他人。");  //信息模板,按照此格式发送信息NameValuePair[] data = {//提交短信/***  配置第三方短信接口信息:*    account :   注册登录第三方短信接口平台 --- 服务查看用户名是登录用户中心 --- 验证码短信 --- 产品总览 --- APIID*    password : 登录 --- 用户中心 --- 验证码短信 --- 产品总览 --- APIKEY*/new NameValuePair("account", "C93854163"),   // APIIDnew NameValuePair("password", "6729a3ab5c4ea8e9ea179d9fd14d970a"), // APIKEY//手机号码new NameValuePair("mobile", phone),//要发送的短信模板内容new NameValuePair("content", content), //此处填的模板字符串,如content};method.setRequestBody(data);client.executeMethod(method);String SubmitResult =method.getResponseBodyAsString();//System.out.println(SubmitResult);Document doc = DocumentHelper.parseText(SubmitResult);Element root = doc.getRootElement();String code = root.elementText("code");  //状态码String msg = root.elementText("msg");String smsid = root.elementText("smsid");System.out.println("---------------------");System.out.println("操作状态码: "+code);System.out.println("msg为: "+msg);System.out.println("smsid为: "+smsid);if("2".equals(code)){System.out.println("短信提交成功-------");}return code;  //操作状态状态码 2:表示短信发送成功}
}

验证码工具类

@Controller
@RequestMapping("/code")
public class CodeController {/*** 生成随机的验证码(图片)*/@RequestMapping("/createImage")public void createImage(HttpServletResponse response, HttpSession session) {try {int height = 34;int width = 110;//准备一个绘图工具类 画布  RGB( Red  Green  Blue 三原色)BufferedImage bufferedImage = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);//画笔Graphics g = bufferedImage.getGraphics();//把画布填充颜色 白色填充矩形g.setColor(Color.WHITE);g.fillRect(0, 0, width, height);//随机生成字符串String words = "qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM0123456789";char[] chars = words.toCharArray();Random random = new Random();StringBuilder sb = new StringBuilder();for (int i = 1; i <= 4; i++) {//随机一个下标int index = random.nextInt(chars.length);char c = chars[index];sb.append(c);Font font = new Font("Arial", Font.BOLD, 25);//随机颜色int red = random.nextInt(256);int green = random.nextInt(256);int blue = random.nextInt(256);Color color = new Color(red, green, blue);//绘制验证码g.setColor(color);g.setFont(font);g.drawString(String.valueOf(c), (width / 5) * i, 30);}//绘制验证干扰线for (int i = 1; i <= 10; i++) {//随机颜色int red = random.nextInt(256);int green = random.nextInt(256);int blue = random.nextInt(256);Color color = new Color(red, green, blue);g.setColor(color);int x1 = random.nextInt(width);int y1 = random.nextInt(height);int x2 = random.nextInt(width);int y2 = random.nextInt(height);g.drawLine(x1, y1, x2, y2);}System.out.println("系统正确随机的验证码是:" + sb.toString());session.setAttribute("syscode",sb.toString());//最后输出图片response.setContentType("image/jpg");//浏览器的响应类型是图片ServletOutputStream outputStream = response.getOutputStream();ImageIO.write(bufferedImage, "jpg", outputStream);} catch (Exception e) {e.printStackTrace();}}
}

邮件工具类

/*** 邮件工具类*/
public class EmailSendUtils {/*** 返回一个邮件发送对象* @return*/public static JavaMailSenderImpl createJavaMailSenderImpl() {JavaMailSenderImpl javaMailSender = new JavaMailSenderImpl();javaMailSender.setHost("smtp.qq.com");//实际项目中,平台搭建邮件服务器,如果真实项目需要自己搭建// 发送方邮箱 平台官方邮箱javaMailSender.setUsername("972666574@qq.com"); //模拟官方邮箱账号// 发送秘钥 不是邮箱密码 也不是QQ密码!!!javaMailSender.setPassword("raorcfdtjdnabfih"); //官方邮箱秘钥// 邮件协议javaMailSender.setProtocol("smtp");//属性Properties properties = new Properties();properties.setProperty("mail.smtp.auth", "true");properties.setProperty("mail.smtp.from", "972666574@qq.com"); //发送方properties.setProperty("mail.debug", "true");javaMailSender.setJavaMailProperties(properties);return javaMailSender;}/*** @param emailTo 发送给谁* @param content 邮件内容* @param title   邮件标题*/public static void sendEmail(String emailTo, String content, String title) throws Exception {//构建“邮件发送”对象JavaMailSenderImpl sender = EmailSendUtils.createJavaMailSenderImpl();//构建“简单邮件”对象     SimpleMailMessage:简单邮箱对象SimpleMailMessage smm = new SimpleMailMessage();// 设定邮件参数smm.setFrom(sender.getUsername());  //发送者是谁smm.setTo(emailTo);  //发送给谁smm.setSubject(title);  //邮件标题smm.setText(content);   //邮箱内容给sender.send(smm);System.out.println("邮件发送" + emailTo + "成功....");}}

代码生成器

/*** MyBatis Plus官网代码生成器*/
public class GeneratorCodeConfig {public static String scanner(String tip) {Scanner scanner = new Scanner(System.in);StringBuilder help = new StringBuilder();help.append("请输入" + tip + ":");System.out.println(help.toString());if (scanner.hasNext()) {String ipt = scanner.next();if (StringUtils.isNotEmpty(ipt)) {return ipt;}}throw new MybatisPlusException("请输入正确的" + tip + "!");}public static void main(String[] args) {// 代码生成器AutoGenerator mpg = new AutoGenerator();// 全局配置GlobalConfig gc = new GlobalConfig();String projectPath = System.getProperty("user.dir"); // E:\Server\OA-SYSTEMSystem.out.println(projectPath);System.out.println(projectPath + "/src/main/java");gc.setOutputDir(projectPath + "/src/main/java");gc.setAuthor("bruce"); //作者信息gc.setOpen(false);//实体属性 Swagger2 接口 注解gc.setSwagger2(false);mpg.setGlobalConfig(gc);// 改:配置自己数据源-----------数据源配置DataSourceConfig dsc = new DataSourceConfig();dsc.setUrl("jdbc:mysql://127.0.0.1:3306/oa2022?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowPublicKeyRetrieval=true");dsc.setDriverName("com.mysql.cj.jdbc.Driver");dsc.setUsername("root");dsc.setPassword("123456");mpg.setDataSource(dsc);// 配置自己包配置PackageConfig pc = new PackageConfig();pc.setParent("com.oa");pc.setEntity("bean");pc.setMapper("mapper");pc.setService("service");pc.setServiceImpl("service.impl");mpg.setPackageInfo(pc);// 配置模板TemplateConfig templateConfig = new TemplateConfig();templateConfig.setXml(null);mpg.setTemplate(templateConfig);// 策略配置StrategyConfig strategy = new StrategyConfig();strategy.setNaming(NamingStrategy.underline_to_camel);strategy.setColumnNaming(NamingStrategy.underline_to_camel);strategy.setInclude(scanner("表名,多个英文逗号分割").split(","));strategy.setControllerMappingHyphenStyle(true);//数据库表的前缀strategy.setTablePrefix("tb_");mpg.setStrategy(strategy);mpg.setTemplateEngine(new FreemarkerTemplateEngine());mpg.execute();}
}

(SSM)各种依赖的作用:

spring-context 依赖:

作用: spring的context上下文即IoC容器, spring中ioc容器要生效需要的依赖。
这个jar文件为Spring核心提供了大量扩展。可以找到使用Spring ApplicationContext
特性时所需的全部类,JDNI 所需的全部类,instrumentation组件以及校验Validation 方面的相关类

spring-context-supprt 依赖:

作用: Spring context的扩展支持,用于MVC方面 ( 也具有spring-content的基本功能)

spring-tx 依赖:

作用: 为JDBC、Hibernate、JDO、JPA等提供的一致的声明式和编程式事务管理

mysql-connector-java 依赖:

作用: 连接mysql和java的依赖。
Java 连接MySQL需要驱动包,否则JDBC无法访问数据库(无法注册驱动),
常用的是mysql-connector-java,在idea中新建项目时可以在选择依赖时勾选Mysql,这样就会自动加载进来

spring-jdbc 依赖:

作用: 连接mysql和Java、创建sql语句、执行sql语句,为对JDBC 的简单封装

spring-data-jpa 依赖:

作用:jpa的前身是著名的ssh中的h——>Hibernate,所以spring-data-jpa 不是mybatis的依赖,用的比较少,但ssm项目中依然需要该依赖

mybatis 依赖 :

作用:mybatis框架需要的依赖。 mybatis的常用的加载数据库的机制为SPI加载机制。
Mybatis是一个半ORM(对象关系映射)框架,它内部封装了JDBC,开发时只需要关注SQL语句本身,不需要花费精力去处理加载驱动、创建连接、
创建statement等繁杂的过程。程序员直接编写原生态sql,可以严格控制sql执行性能,灵活度高
( mybatis是一个jdbc框架,简化关于jdbc的操作,程序员只需写简单的mysql即可实现原本该有的内容)
----mybatis的jdbc中优化CURD的框架,而druid是jdbc中关于管理数据库连接对象(将数据库连接对象)放入到druid连接池中,两者处理的方面不同,有很大的区别

mybatis-spring 依赖:

作用: 连接spring和mybatis

mybatis-plus 依赖:

作用: mybatis框架需要的依赖,同中包含了 mybatis依赖 和 mybatis-spring(连接mybatis和spring)这两个依赖,
一个依赖有两个的效果

spring-web 依赖:

作用: 项目中的web内容要用到的依赖 ( 有了spring-webmvc就不用该依赖了 ) --为项目中是web应用内容服务
Spring web:包含Web应用开发时,用到Spring框架时所需的核心类,包括自动载入

spring-webmvc 依赖 :

作用: SSM项目中的mvc以及web要用到的依赖。
这个jar 文件包含Spring MVC 框架相关的所有类。包括框架的Servlets,Web MVC框架,
控制器和视图支持。如果你的应用使用了独立的MVC 框架,则无需这个JAR 文件里的任何类

freemarker 依赖:

作用: freemarker模板引擎,简化业务代码

junit 依赖 :

作用: 进行单元测试要用的依赖。

spring-test 依赖:

作用: 测试代码要用到的依赖, 与 junit有功能重叠,但不冲突

kaptcha 依赖 :

作用: 谷歌的验证码工具,用于在登录页面时产生验证码

druid 依赖 :

(druid是jdbc的框架, 其将数据库连接对象交给druid连接池管理,仅仅是连接的这一开始部分,而mybatis-plus是简化连接之后的对数据库的CURD操作)
作用:alibaba 的 druid连接池,是一个jdbc工具,简化jdbc操作 ( jdbc的作用的连接mysql 与 Java,要导入对应的依赖要导入spring-jdbc 和
mysql-connector-java依赖才能实现java连mysql )
连接池依赖 :druid 将数据库连接对象 交给 连接池进行管理 和 连接,不用手动的连接和释放。 druid 能进行监控
druid 能为dataSouce的bean对象服务,把spring下的mybatis的dataSource交给 druid的连接池进行管理,该连接池(druid) 则交给spring进行管理
( 数据库连接池需要的依赖 )
—如要在applicationContext.xml中配置 连接数据库的 数据源( dataSource) bean对象,来配合jdbc.properties配置文件来连接数据库

druid 与 mybatis-plus 的区别:

druid 与 mybatis-plus 都是jdbc的框架,前者将数据库连接对象交给druid连接池来管理,后者管连接之后的CURD操作,后者也是jdbc的框架
(前者是连接,后者是具体的curd操作)

jackson-databind 依赖 :

作用 : 前后端数据传输要用到的依赖(用到与json有关的技术)

springfox-swagger2 依赖:

作用: 在代码中起注释作用,打包后形成一个关于代码信息的api文档

javax.servlet-api 依赖:

作用:为ssm项目中的与servlet有关的内容进行服务所需的依赖。

jackson-databind 依赖 :

作用:

commons-fileupload 依赖:

作用:

commons-io 依赖

作用:Commons IO是针对开发IO流功能的工具类库,为spring中的io流服务
主要包括六个区域:
工具类——使用静态方法执行共同任务
输入——用于InputStream和Reader实现
输出——用于OutputStream和Writer实现
过滤器——各种文件过滤器实现
比较器——各种文件的java.util.Comparator实现
文件监听器——监听文件系统事件的组件

commons-logging 依赖

作用: 用来记录程序运行时的活动的日志记录 的依赖, 在java平台中,有几个可以选择的日志记录的实现(log4j,JDK Logging API)
commons-logging.jar包是使用spring的必备包。(位置在spring-framework-2.5.6.SEC01\lib \jakarta-commons)

commons-lang

作用: 跟java.lang这个包的作用类似,Commons Lang这一组API也是提供一些基础的、通用的操作和处理,
如自动生成toString()的结果、自动实现hashCode()和equals()方法、数组操作、枚举、日期和时间的处理等等。
这一组API的所有包名都以org.apache.commons.lang开头,共有如下8个包:
org.apache.commons.lang
org.apache.commons.lang.builder
org.apache.commons.lang.enum
org.apache.commons.lang.enums
org.apache.commons.lang.exception
org.apache.commons.lang.math
org.apache.commons.lang.mutable
org.apache.commons.lang.time

commons-beanutils 依赖:

作用:Apache开源组织提供的用于操作Java bean的工具包,为bean对象服务

commons-collections 依赖 :

作用:为Java标准的Collections API提供了相当好的补充。在此基础上对其常用的数据结构操作进行了很好的封装、抽象和补充。保证性能的同时大大简化代码。

spring-core 依赖:

作用: Spring的核心工具包。
Spring 其它组件要都要使用到这个包里的类,是其它组件的基本核心,同时可以在自己的应用系统中使用这些工具类

spring-jdbc 依赖:

作用: 对JDBC 的简单封装 ( 用了mybatis 就不用引入jdbc依赖了)

spring-aspects 依赖:

作用: 提供对AspectJ的支持,以便可以方便的将面向方面的功能集成进IDE中,比如Eclipse AJDT。
( 简而言之是: 为spring aop服务的依赖 )

webjars-locator 依赖:

作用: 网络使定位器 依赖

logback-classic 依赖 :

作用: 日志依赖 ( 有其他功能相似的依赖 )

jstl 依赖

作用: 是一个不断完善的开放源代码的JSP标签库,为与jSP相关的内容服务,使得操作JSP的代码更简洁、方便

quartz 依赖

作用:作业调度框架,为作业调度服务。Quartz是一个完全由java编写的开源作业调度框架,由OpenSymphony组织开源出来。
所谓作业调度其实就是按照程序的设定,某一时刻或者时间间隔去执行某个代码。最常用的就是报表的制作了。

slf4j-api 依赖

作用: 为日志门面服务,与之前的日志依赖功能类似,但不重叠,相互使用。
是为java提供的简单日志Facade。Facade门面,更底层一点说就是接口。它允许用户以自己的喜好,在工程中通过slf4j接入不同的日志系统。
与 slf4j即简单日志门面(Simple Logging Facade for Java),不是具体的日志解决方案,它只服务于各种各样的日志系统。
按照官方的说法,SLF4J是一个用于日志系统的简单Facade,允许最终用户在部署其应用时使用其所希望的日志System

log4j 依赖:

作用: Log4j 框架是用 Java 语言编写的标准日志记录框架 ( 一般为其添加一个log4j.properties配置文件,来配置日志需要信息)

slf4j-log4j12 依赖:

作用: ①连接slf4j依赖 和 log4j 依赖,为这两个依赖服务 ( 连接slf4依赖 和 log4j依赖,是这两个依赖的适配器 )
②语句调用slf4j-log4j12链接slf4j-api和log4j中间的适配器。它实现了slf4j-apiz中StaticLoggerBinder接口,
从而使得在编译时绑定的是slf4j-log4j12的getSingleton()方法log4j,这个是具体的日志系统。通过slf4j-log4j12初始化Log4j,达到最终日志的输出

spring-context 依赖 :

作用: 该依赖为Spring 核心(spring-core)提供了大量扩展,帮助项目功能的实现。
可以找到使用Spring ApplicationContext特性时所需的全部类,JDNI 所需的全部类,instrumentation组件以及校验Validation 方面的相关类。
外部依赖spring-beans, (spring-aop)。----第一个依赖介绍就是它

spring-core:

作用: Spring的核心工具包,Spring的核心功能/基本功能需要的依赖。Core模块主要的功能是实现了控制反转( IOC )与依赖注入( DI )、Bean配置以及加载。
Core模块中有Beans、BeanFactory、BeanDefinitions、ApplicationContext等概念,所以说有spring’-core是IOC、DI、bean配置等需要的依赖

spring-beans:

作用: Bean工厂与bean的装配需要的依赖

spring-aspects 依赖:

aspects :切面----面向切面的框架,实现面向切面功能需要的依赖
作用: Spring提供的对AspectJ(面向切面)框架的整合,实现面向切面功能需要的依赖。提供对AspectJ的支持,以便可以方便的将面向方面的功能集成进IDE中,
比如Eclipse AJDT。
( AspectJ:
AspectJ是一个面向切面的框架,它扩展了Java语言。AspectJ定义了AOP语法,它有一个专门的编译器用来生成遵守Java字节编码规范的Class文件。)

spring-aop 依赖:

作用:Spring的面向切面编程,提供AOP(面向切面编程)的实现,( SSM项目不一定要引入该mvaven依赖,因为因为 spring-aop 是负责切面控制的,
目前这个项目还没有太多的业务,所以不需要用横向切面来做。(例如,如果这个系统有很多业务,我就可以用aop来控制事务或者控制日志输出,
如果这个系统目前只有1个 秒杀业务,是个简单系统,就不用切面,也是可以的))

Spring Ioc 依赖:

( 不一定要引入) 作用:控制反转依赖

c3p0 依赖 :

作用:为Java连接数据库服务,使其连接更便捷、快速。c3p0是一个库。它扩展了传统的jdbc数据库连接池,并且支持JDBC3规范和JDBC2的标准扩展
连接池基本的思想是在系统初始化的时候,将数据库连接作为对象存储在内存中,当用户需要访问数据库时,并非建立一个新的连接,
而是从连接池中取出一个已建立的空闲连接对象。 使用完毕后,用户也并非将连接关闭,而是将连接放回连接池中,以供下一个请求访问使用。
而连接的建立、断开都由连接池自身来管理。 同时,还可以通过设置连接池的参数来控制连接池中的初始连接数、
连接的上下限数以及每个连接的最大使用次数、最大空闲时间等等。也可以通过其自身的管理机制来监视数据库连接的数量、使用情况等

mchange-commons-java 依赖

作用: 这是c3p0数据库连接池的辅助包,如果没有这个包系统启动时会报classnotfoundexception,这是更新c3p0-0.9.2版本后分离出来的包,0.9.1的时候还是只是一个包。

json-lib 依赖 :

作用:为json/与json有关的数据转换有关
JSON-lib可以将beans,maps,collections,java arrays,xml转换成json,再将json转换成beans,DynaBeans.

ezmorph 依赖:

作用: ezmorph是一个简单的java类库,用于将一种对象转换成另外一种对象。
ezmorph原先是Json-lib项目中的转换器。EZMorph支持原始数据类型(Primitive),对象(Object),多维数组转换与DynaBeans的转换

lombok 依赖:

作用: Lombok是一款好用顺手的工具,就像Google Guava一样,在此予以强烈推荐,每一个Java工程师都应该使用它。
Lombok是一种Java™实用工具,可用来帮助开发人员消除Java的冗长代码,尤其是对于简单的Java对象:POJO(POJO: 简单的java对象,即javabean对象,除了springbean
其他都是POJO:简单的java对象)。它通过注释实现这一目的,
通过在开发环境中实现Lombok,开发人员可以节省构建诸如hashCode()和equals()这样的方法以及以往用来分类各种accessor和mutator的大量时间。
( lomback是一款简化开发的工具 )
—lombok是一个可以通过简单的注解的形式来帮助我们简化消除一些必须有但显得很臃肿的 Java 代码的工具
( lombok 依赖 和 logback-classic依赖两者是不同的,前者是简化java代码,消除冗长代码,后者的日志依赖 )


     ps:  @NoArgsConstructor、@Getter、@Setter是属于LomBok使用的范畴;

freemarker 依赖:

作用: freemarker是一种与web容器无关的技术,应用并不局限于页面。使用java开发出来的模板引擎。为减少前后缀的输入服务,简化开发,
可在xml文件中设置前后缀,那代码中就可不填文件的前缀和后缀,简化开发。

mail 依赖:

作用: 发送邮件

dom4j 依赖:

作用: dom4j是一个Java的XML API,类似于jdom,用来读写XML文件的。 dom4j 是一种解析 XML 文档的开放源代码 XML 框架
dom4j是一个非常非常优秀的Java XML API,具有性能优异、功能强大和极端易用使用的特点,同时它也是一个开放源代码的软件

commons-httpclient 依赖

作用: 远程请求客户端所需的依赖

poi 依赖 :

作用之一: 导出excel表格要用到
作用: 开发中经常会设计到excel的处理,如导出Excel,导入Excel到数据库中,操作Excel目前有两个框架,一个是apache 的poi, 另一个是 Java Excel
Apache POI 简介是用Java编写的免费开源的跨平台的 Java API,Apache POI提供API给Java程式对Microsoft Office(Excel、WORD、PowerPoint、Visio等)
格式档案读和写的功能 ( 为读取和形成各类文档服务的依赖 ) --不同的文档格式有不同的依赖

poi-ooxml 依赖

作用: 是poi的依赖的一种, 不同的依赖代表不同的文档格式。

itext7-core 依赖

作用:

springfox-swagger2 依赖

作用: 在代码中起注释作用,打包后形成一个关于代码的api文档

spring-security-config 依赖:

作用: spring 安全链所需的依赖

spring-security-taglibs 依赖:

作用:

jsr250 依赖:

作用:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/189164.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SELinux refpolicy详解(6)

接前一篇文章&#xff1a;SELinux refpolicy详解&#xff08;5&#xff09; 三、refpolicy内容详解 1. README 文件路径&#xff1a;refpolicy源码根目录/README。 文件内容如下&#xff1a; 1) Reference Policy make targets:General Make targets:install-src Install …

流媒体方案之FFmepeg——实现物联网视频监控项目

目录 前言 一、FFmpeg介绍 二、FFmpeg简易理解 三、FFmpeg的重要概念 四、软硬件准备 五、移植、运行FFmpeg 六、运行FFmpeg 前言 最近想做一个安防相关的项目&#xff0c;所以跟着韦东山老师的视频来学习视频监控方案的相关知识&#xff0c;韦东山老师讲的课非常好&…

ABB YuMi协作式双臂机器人进入工厂,极大缓解劳动力短缺问题

原创 | 文 BFT机器人 日本SUS公司是一家为汽车和其他制造业提供铝框架和压铸铝部件的知名供应商&#xff0c;近年来&#xff0c;由于全球供应链面临严重中断&#xff0c;该公司希望能够寻找一家自动化供应商来帮助其恢复日本静冈县的产品生产。SUS公司表示&#xff0c;由于生产…

HarmonyOS——解决本地模拟器无法选择设备的问题

在使用deveco studio进行鸿蒙开发的时候&#xff0c;可能会遇到本地模拟器已经启动了&#xff0c;但是仍然无法选择本地模拟器中的设备&#xff0c;尤其在MAC环境中尤为常见。 解决办法&#xff1a; 先打开IDE启动本地模拟器&#xff0c;等模拟器启动后&#xff0c;退出IDE重新…

Cpp之旅(学习笔记)第10章 字符串和正则表达式

Cpp之旅&#xff08;学习笔记&#xff09;第10章 字符串和正则表达式 10.1 引言 Cpp标准库提供了 string 类型&#xff0c;使用程序员不必在使用C风格的文本处理方式——通过指针来处理字符数组。Cpp标准库还提供了 string_view 类型&#xff0c;允许程序以容器方式访问字符序…

【代码】基于算术优化算法(AOA)优化参数的随机森林(RF)六分类机器学习预测算法/matlab代码

代码名称&#xff1a;基于算术优化算法&#xff08;AOA&#xff09;优化参数的随机森林&#xff08;RF&#xff09;六分类机器学习预测算法/matlab代码 使用算术优化算法&#xff08;AOA&#xff09;优化分类预测模型的参数&#xff0c;收敛性好&#xff0c;准确率提升明显&am…

数据结构番外—大根堆

文章目录 大根堆 大根堆 这一篇中我会给出一个基于C模板实现的比较完善的heap类&#xff0c;你只需要简单地修改就可以把它变为小根堆 #include <iostream> #include <vector> #include <cmath> using namespace std;template<typename T> class heap…

java第二十五课

Mysql 数据库 设计: 表设计成功 alter table 改表的主键&#xff0c;改约束关系 表&#xff1a;关系表&#xff0c;改一个表&#xff0c;另外一个表 表---->java 代码 增删改查&#xff08;项目中需要的操作&#xff09; 项目:Create databaseCreate table&#xff08;从测试…

每天免费使用ChatGPT网站

我现在开发都是用chatgpt帮我做事情了&#xff0c;工作效率直接翻了好几倍&#xff0c;剩余时间来摸鱼&#xff0c;嘎嘎香~ 1、 ChatGPT 注册送ChatGPT3.5 4.0,每天也能免费使用&#xff0c;赶紧薅 2、 csdn的C知道 csdn新功能 3、文心一言 国内百度大厂的模型 各有优缺…

leetcode27. 移除元素

题目描述 给你一个数组 nums 和一个值 val&#xff0c;你需要 原地 移除所有数值等于 val 的元素&#xff0c;并返回移除后数组的新长度。 不要使用额外的数组空间&#xff0c;你必须仅使用 O(1) 额外空间并 原地 修改输入数组。 元素的顺序可以改变。你不需要考虑数组中超出…

Python 流程控制

目录 程序流程 顺序结构 分支结构 单分支 双分支 多分支 if 嵌套 循环结构 while循环 for 循环 退出循环 循环与分支嵌套 附录 程序流程 程序是由语句构成&#xff0c;而流程控制语句 是用来控制程序中每条语句执行顺序的语句。可以通过控制语句实现更丰富的逻辑…

深入理解VUE组件:父子组件详细说明及应用

文章目录 &#x1f342;引言&#x1f342;什么是父子组件&#x1f342;属性传递&#x1f341;父组件向子组件传递属性&#x1f33f;父组件代码示例&#x1f33f;子组件代码示例 &#x1f341;子组件向父组件传递属性&#x1f33f;子组件代码示例&#x1f33f;父组件代码示例 &a…

后端项目操作数据库增删改查-使用MyBatis配置实现数据操作

一、创建一个数据表对应的实体类 在src/main/java/包名/路径下新建pojo.entity文件夹&#xff0c;如com.luoyang.small.pojo.entity&#xff0c;并在该文件夹下新增实体类java文件&#xff1a;如相册Album.java 该实体类的属性应与数据表的字段对应 数据表样例如下&#xff1a…

PTA 7-192 浪漫的表白

有一个帅小伙一直暗恋一个女孩&#xff0c;但他还是没有勇气向她表白“我爱你”&#xff0c;更别说“某某某&#xff0c;我爱你&#xff0c;如果非要在这份‘爱’上加一个期限的话&#xff0c;那就是一万年”这类肉麻的话&#xff0c;生怕说了后会是“落花有意流水无情”&#…

后端返回图片流前端展示图片

根据后端返回的图片流格式&#xff0c;选用合适方法转换 下面以base64为例 if(res.status 200) {res.data.data.forEach((item,index) > {let Array data:image/png;base64, itemlet blob this.base64toBlob(Array)let url URL.createObjectURL(blob)this.imageList.p…

24年5月软考高项考哪些内容,考试大纲什么的?

信息系统项目管理师属于「计算机技术与软件专业技术资格&#xff08;水平&#xff09;考试」中的高级资格考试。 也称「软考高项」&#xff0c;可以「以考代评」用来评副高级职称。 一、软考备考前期准备 信息系统项目管理师考试科目包括&#xff1a; 《综合知识》、《案例分…

html原生echart柱状图

html原生echart柱状图 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Bar Chart Example</title><!-- Include Chart.js library --><script src"https://cdn.jsdelivr.net/npm/…

Linux的基本指令(4)

目录 20.tar指令&#xff08;重要&#xff09;&#xff1a;打包/解包&#xff0c;不打开它&#xff0c;直接看内容 21.bc指令 22.uname –r指令&#xff1a; 23.重要的几个热键[Tab],[ctrl]-c, [ctrl]-d 20.tar指令&#xff08;重要&#xff09;&#xff1a;打包/解包&#…

手机上的记事本怎么打开?安卓手机通用的记事本APP

有不少上班族发现&#xff0c;自己想要在电脑上随手记录一些工作文字内容&#xff0c;直接使用电脑上的记事本工具来编辑文字是比较便捷的。但是如果想要在手机上记录文字内容&#xff0c;就找不到手机上的记事本了。那么手机上的记事本怎么打开&#xff1f;安卓手机通用的记事…

Windows环境 dockertopdesk 部署gitlab

1.在dockertopdesk里搜索 gitlab镜像 (pull)拉取镜像 2.运行镜像到容器 mkdir gitlab gitlab/etc gitlab/log gitlab/opt docker run -id -p 3000:80 -p 9922:22 -v /root/gitlab/etc:/etc/gitlab -v /root/gitlab/log:/var/log/gitlab -v /root/gitlab/opt:/var/opt/gitla…