Java
MarconiYe
这个作者很懒,什么都没留下…
展开
-
SpringBoot用配置文件对Properties的静态变量赋值
由于工具类为静态的,所以我们的Properties里的变量也必须为静态的,那么我们就不能直接用。方法,因为自动生成的默认为static方法,而想要通过配置文件来对其赋值,其。我们经常通过配置文件来设置代码中可以变的值,来降低代码与这些值的耦合度。如果在静态工具类中,比如Jwt工具类。我们想要自定义配置其默认的过期时间。这样就可以正常通过配置文件赋值。或者IDE工具来直接生成。方法必须为非static。...原创 2022-07-17 20:09:58 · 746 阅读 · 1 评论 -
Java可变参数的传参
函数中的可变参数需要传入对应类型的数组,有两种方法可以将ArrayList转化为数组: List<String> list = new ArrayList<>(); String[] array = (String[]) list.toArray();这样看上去是没什么问题,但实际上toArray()返回的是Object[]类型,不能直接将其强转为String[],会报以下错误:必须将一个个提取出来转化为目标类型,因此可以用其重载方法to原创 2022-05-06 00:47:19 · 4015 阅读 · 0 评论 -
MyBatis多表查询时的映射配置
MyBatis进行多表查询时,比如用户和订单两个类(对应两个表)中,一个用户可以有多个订单,因此在用户的类中需要加上一个List<Order> orders属性;而一个订单只对应着一个用户,因此在订单类中需要加上User user来匹配该订单对应的用户信息此时需要在映射文件配置中配置结果类型的映射关系:一对一的关系 <resultMap id="order" type="Order"> <id column="oid" property="id"原创 2022-04-13 21:12:50 · 1815 阅读 · 0 评论 -
对Spring-AOP的理解
AOP(Aspect Oriented Programming) 面向切面编程Spring 使用动态代理技术对一些具有相同增强功能的业务方法进行解耦的一种实现,所谓切面,可以暂时理解为这个增强方法和被增强的业务方法首先应该了解一些重要概念Target(目标对象):被代理的对象joinPoint(连接点):目标对象,所有可以增强的方法。所谓连接点在Spring中指那些被拦截到的方法,也就是可以被增强的方法PointCut(切入点):真正要被增强的方法,是连接点的一部分Ad原创 2022-04-13 02:12:03 · 272 阅读 · 0 评论 -
【Java】利用动态代理模式来增强方法功能
代理模式作为设计模式的一种,在各大框架的功能底层发挥很重要的作用,比如Spring的AOP,其底层就是用到了动态代理的技术思想,其基本步骤如下:创建接口:package com.pojo;public interface ShowInfo { String showInfo();}创建类实现接口package com.pojo;public class User implements ShowInfo{ private String name; pr.原创 2022-04-13 01:33:03 · 1096 阅读 · 0 评论 -
Spring的注解开发
Spring框架,包括以后学的几乎所有框架,使用注解开发来代替配置文件开发是整个行业的趋势下面介绍Spring的注解以及用途@Component(String value):在类上用于实例化Bean,参数value可以给该Bean取名,也就是id@Controller()@Serrvice()@Repository()以上三个注解分别表示在web、service和dao三层架构上的实例化Bean,与Component除了能够更快识别该类的类型没有逻辑上的区别@Autowired:根据类型.原创 2022-04-11 20:21:09 · 238 阅读 · 0 评论 -
Spring配置数据源(连接池)
在这之前,我们用JDBC连接数据库的方法有许多:直接通过JDBC硬代码将数据库连接信息配置到properties文件中,再用ResourceBundle进行读取配置文件用MyBatis框架的mybatis-config核心配置文件来配置数据库信息用连接池来获取连接对象现在我们可以用Spring容器来配置连接池获取连接对象只需要将连接池类路径配置到Bean中,再将相应set方法的属性用property标签配置即可,如果对Spring依赖注入不熟悉可以查看我的上一篇文章Spring依赖注入在原创 2022-04-11 17:39:14 · 127 阅读 · 0 评论 -
Spring的依赖注入
在JavaWeb开发的三层架构中,业务层接口对持久层方法进行封装,进一步的传递给web层使用,而在业务层对持久层的封装时,Spring容器的依赖注入发挥了很大作用,依赖注入大致分以下几类:对象的注入:我们知道,web层在调用业务层的方法时,无需关心业务层是怎么对持久层进行封装的,只需知道业务层的方法能完成什么业务,因此业务层在封装持久层对象时,可以用Spring的Bean容器进行依赖注入,来完成解耦applicationContext.xml:如上图,在Spring配置文件中,bean标签可以原创 2022-04-11 17:26:30 · 481 阅读 · 0 评论 -
MyBatis条件查询
单条件查询用select查询数据时,如果需要用户传入的参数只有一个时,可以直接在接口代理方法中设置一个参数:如上图的selectById(int id)方法,定义好方法后需要在对应的映射文件中写上对应的SQL语句只需要将对应的参数名传入#{}中即可实现插入参数,还有一种方法是将#改成$,这两个的区别在于:$代表的是先拼接字符串,再对SQL进行编译,而#则是先预编译SQL语句,再传入参数的值,这样可以防止字符串拼接时的SQL注入问题,具体可看我的另一篇文章JDBC解决SQL注入问题多条件查询当原创 2022-04-09 10:57:31 · 4703 阅读 · 0 评论 -
用MyBatis简化JDBC连接数据库的基本操作
学习了JDBC操作数据库后,会发现JDBC操作时写的硬代码太多,代码复用性和可维护性都比较低,因此在开发中,我们常用MyBatis框架来简化JDBC的操作,具体步骤如下:这里是用的Maven工具搭建的项目首先将基础的依赖包导入pom.xml文件中:#pom.xml <dependencies> <dependency> <groupId>org.mybatis</groupId> &l原创 2022-04-08 02:14:55 · 1424 阅读 · 0 评论 -
JDBC事务操作
在JDBC中想要开启事务,实际上就是关闭mysql默认的自动提交机制,将数据库的连接对象调用相应方法即可:con.setAutoCommit(false);//取消自动提交,开启事务con.commit();//手动提交con.rollback();//事务回滚,可在catch代码块中执行...原创 2022-04-06 23:48:30 · 461 阅读 · 0 评论 -
JDBC与数据库交互的基本操作
想要用java对数据库进行增删改查等操作,需要用到JDBC,下面是利用JDBC与数据库实现交互的基本步骤:注册数据库驱动第一种方法 java.sql.Driver driver = new com.mysql.cj.jdbc.Driver();//注册mysql驱动,调用mysql的Driver接口实现类的构造方法 DriverManager.registerDriver(driver);//注册mysl驱动第二种方法可以直接调用Class.forName()方法类加载来执行co原创 2022-04-04 14:29:03 · 1052 阅读 · 0 评论