05 2024 档案

摘要:同步调用 基于OpenFeign的调用都属于是同步调用,等待上一个需求结束,开始下一个需求。 有缺点: 拓展性差:每次有新的需求,现有支付逻辑都要跟着变化,代码经常变动,不符合开闭原则,拓展性不好。 性能下降:每次远程调用,调用者都是阻塞等待状态。 级联失败:当某一个服务出现故障时,整个事务都会回滚 阅读全文
posted @ 2024-05-31 21:18 Hanyta 阅读(23) 评论(0) 推荐(0) 编辑
摘要:雪崩问题产生的原因:微服务相互调用,服务提供者出现故障或阻塞;服务调用者没有做好异常处理,导致自身故障;调用链中的多有服务级联失败,导致整个集群故障。 解决问题的思路: 尽量避免服务出现故障或者阻塞 尽量保证代码的健壮性; 保证网络畅通; 能应对较高的并发请; 服务调用者做好远程调用异常的后背方案, 阅读全文
posted @ 2024-05-29 14:33 Hanyta 阅读(23) 评论(0) 推荐(0) 编辑
摘要:微服务共享的配置可以统一交给Nacos保存和管理,在Nacos控制台修改配置后,Nacos会将配置变更推送给相关的微服务,并且无需重启即可生效,实现配置热更新。在nacos配置列表中添加共享配置:可抽取的共享式配置,jdbc,mybatis-plus,日志配置,swagger和feign的配置,在n 阅读全文
posted @ 2024-05-28 21:34 Hanyta 阅读(61) 评论(0) 推荐(0) 编辑
摘要:自定义过滤器 网关过滤器有两种,分别是: GatewayFilter:路由过滤器,作用于任意指定的路由;默认不生效,要配置到路由后生效。 GlobalFilter:全局过滤器,作用范围是所有路由;声明后自动生效。 用自定义的GlobalFilter来完成登录校验 提前准备的工具: AuthPrope 阅读全文
posted @ 2024-05-28 16:46 Hanyta 阅读(95) 评论(0) 推荐(0) 编辑
摘要:在Spring Boot中整合Spring Cloud Gateway是一个常见的需求,尤其是当需要构建一个微服务架构的应用程序时。Spring Cloud Gateway是Spring Cloud生态系统中的一个项目,它提供了一个API网关,用于处理服务之间的请求路由、安全、监控和限流等功能。 使 阅读全文
posted @ 2024-05-28 10:09 Hanyta 阅读(15) 评论(0) 推荐(0) 编辑
摘要:OpenFeign 是一个基于 Spring 的声明式、模板化的 HTTP 客户端,它简化了编写 Web 服务客户端的过程。用户只需创建一个接口并添加相应的注解,即可实现对远程服务的调用。Spring Cloud OpenFeign 对 Feign 进行了二次封装,使得在 Spring Cloud 阅读全文
posted @ 2024-05-28 09:12 Hanyta 阅读(51) 评论(0) 推荐(0) 编辑
摘要:业务板块:用户模块,商品模块,购物车模块,订单模块,支付模块 服务拆分原则 创业型项目:先采用单体架构,快速开发,快速试错。随着规模扩大,逐渐拆分。 确定的大型项目:资金充足,目标明确,可以直接选择微服务架构,避免后续拆分的麻烦。 高内聚:每个微服务的职责要尽量单一,包含的业务相互关联度高、完整度高 阅读全文
posted @ 2024-05-27 20:14 Hanyta 阅读(10) 评论(0) 推荐(0) 编辑
摘要:Compose 是用于定义和运行多容器 Docker 应用程序的工具。通过 Compose,您可以使用 YML 文件来配置应用程序需要的所有服务。 Compose 使用的三个步骤 使用 Dockerfile 定义应用程序的环境。 使用 docker-compose.yml 定义构成应用程序的服务,这 阅读全文
posted @ 2024-05-26 16:43 Hanyta 阅读(23) 评论(0) 推荐(0) 编辑
摘要:将你的java项目打包为一个jar包 准备Dockerfile文件 # 设置本镜像需要使用的基础镜像 FROM java:8 # 把jar包添加到镜像中 ADD yylq-ds.jar /app.jar # 镜像暴露的端口 EXPOSE 8199 RUN bash -c 'touch /app.ja 阅读全文
posted @ 2024-05-26 16:29 Hanyta 阅读(42) 评论(0) 推荐(0) 编辑
摘要:docker基础命令 systemctl start docker 启动docker systemctl stop docker 关闭docker systemctl restart docker 重启docker systemctl enable dockerdocker 设置随服务启动而自启动 阅读全文
posted @ 2024-05-25 21:49 Hanyta 阅读(24) 评论(0) 推荐(0) 编辑
摘要:MyBatisPlus自带分页插件,只需简单的配置就可以实现分页功能 添加配置类注解@Configuration @Configuration public class MyBatisPlusConfig { //配置分页插件 @Bean public MybatisPlusInterceptor 阅读全文
posted @ 2024-05-25 12:10 Hanyta 阅读(64) 评论(0) 推荐(0) 编辑
摘要:在idea中下载插件MybatisX 点击菜单栏HELP右边的Other,配置好相应的数据库,测试连接,最后编写生成什么,以及生成在哪的代码 静态工具的使用 需求 service实现类的写法:出现service相互调用的时候,建议使用Db静态工具类,避免循环依赖 逻辑删除:基于代码逻辑模拟删除效果, 阅读全文
posted @ 2024-05-25 11:07 Hanyta 阅读(69) 评论(0) 推荐(0) 编辑
摘要:在有了实体类的基础上,创建UserInfoMapper 接口,并继承 BaseMapper 接口 public interface UserInfoMapper extends BaseMapper<UserInfo> {} 继承 IService 创建 Service 接口,并创建对应的实现类 p 阅读全文
posted @ 2024-05-24 20:48 Hanyta 阅读(130) 评论(0) 推荐(0) 编辑
摘要:MyBatis-Plus提供了强大的条件构造器。通过条件构造器可以写一些复杂的SQL语句,从而提高我们的开发效率。通过 EntityWrapper(简称 EW,MP 封装的一个查询条件构造器)或者 Condition(与 EW 类似) 来让用户自由的构建查询条件,简单便捷,没有额外的负担, 能够有效 阅读全文
posted @ 2024-05-24 19:22 Hanyta 阅读(564) 评论(0) 推荐(0) 编辑
摘要:Mybatis-plus:Mybatis增强工具,只做增强,不作改变,简化开发,提高效率。 Mybatis-plus特点: 无侵入:Mybatis-Plus 在 Mybatis 的基础上进行扩展,只做增强不做改变,引入 Mybatis-Plus 不会对现有的 Mybatis 构架产生任何影响,而且 阅读全文
posted @ 2024-05-24 15:15 Hanyta 阅读(20) 评论(0) 推荐(0) 编辑
摘要:Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源。Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhon 阅读全文
posted @ 2024-05-24 13:28 Hanyta 阅读(8) 评论(0) 推荐(0) 编辑
摘要:服务网关在完成客户端与服务器端报文格式转换的同时,它可能还具有身份验证、监控、缓存、请求管理、静态响应处理等功能。另一方面,也可以在网关层制定灵活的路由策略。针对一些特定的 API,我们需要设置白名单、路由规则等各类限制。 spring cloud中通常使用Gateway 能够匹配任何请求属性上的路 阅读全文
posted @ 2024-05-24 11:25 Hanyta 阅读(12) 评论(0) 推荐(0) 编辑
摘要:java代码的方式 写一个配置类 public class FeignConfig { /** * 将契约改为feign原生的默认契约。这样就可以使用feign自带的注解了。 * @return 默认的原生契约 */ @Bean public Contract feignContract(){ re 阅读全文
posted @ 2024-05-23 22:07 Hanyta 阅读(162) 评论(0) 推荐(0) 编辑
摘要:什么是Feign? Feign是声明式Web Service客户端,它让微服务之间的调用变得更简单。 为什么使用Feign? Feign旨在使编写Java Http客户端变得更容易; 之前在使用Ribbon + RestTemplate时,利用RestTemplate对Http请求的封装处理,形成了 阅读全文
posted @ 2024-05-23 21:36 Hanyta 阅读(33) 评论(0) 推荐(0) 编辑
摘要:为什么需要配置管理? 在单体应用中,配置管理可能不是什么大的事情,通常会以配置文件的方式。常见的方法比如将配置通过打包脚本打入应用包中,或者直接放到运行应用的服务器的特定目录下,或者存储到数据库中。这种方式在传统的单体应用中简单有效,但是也会有些比较棘手的问题,比如: 配置变化频繁时,需要频繁的打包 阅读全文
posted @ 2024-05-23 10:45 Hanyta 阅读(42) 评论(0) 推荐(0) 编辑
摘要:分级模型 为了提升整个系统的容灾性,Nacos 引入了地域 (Zone) 的概念,如上图中的北京、上海和杭州。把同一个服务的多个实例部署到不同地域的机房中 (鸡蛋分开不同的篮子放) ;又把在同一个地域的机房的多个服务实例称为集群 (Cluster) 。比如,杭州机房的 2 个用户服务 user-se 阅读全文
posted @ 2024-05-23 09:47 Hanyta 阅读(81) 评论(0) 推荐(0) 编辑
摘要:Nacos是springcloud的扩展,注册中心功能通过NacosDiscoveryClient 继承DiscoveryClient,在springcloud中,与Eureka可以无侵入的切换。注册中心可以手动剔除服务实例,通过消息通知客户端更新缓存的实例信息,完整调用链路示例如下: Nacos 阅读全文
posted @ 2024-05-23 08:56 Hanyta 阅读(14) 评论(0) 推荐(0) 编辑
摘要:什么是分布式? 分布式系统一定是由多个节点组成的系统。其中,节点指的是计算机服务器,而且这些节点一般不是孤立的,而是互通的。 分布式与集群的区别? 集群:集群是指在几个服务器上部署相同的应用程序来分担客户端的请求。它是同一个系统部署在不同的服务器上,比如一个登陆系统部署在不同的服务器上。好比多个人一 阅读全文
posted @ 2024-05-23 08:44 Hanyta 阅读(10) 评论(0) 推荐(0) 编辑
摘要:Spring Cloud Ribbon 是一套基于 Netflix Ribbon 实现的客户端负载均衡和服务调用工具。负载均衡是系统处理高并发、缓解网络压力和服务端扩容的重要手段之一。 通过Ribbon,以将面向服务的 REST 模板(RestTemplate)请求转换为客户端负载均衡的服务调用,S 阅读全文
posted @ 2024-05-22 16:37 Hanyta 阅读(12) 评论(0) 推荐(0) 编辑
摘要:pom.xml引入jar包 <!--eureka-client --> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-client</ 阅读全文
posted @ 2024-05-22 14:49 Hanyta 阅读(8) 评论(0) 推荐(0) 编辑
摘要:注册中心相当于微服务架构中的“通讯录”,它记录了服务和服务地址的映射关系。在分布式架构中,服务会注册到注册中心,当服务需要调用其他服务时,就到这里找到服务的地址,进行调用。服务注册中心的作用就是服务的注册和服务的发现。 常见注册中心的对比 Eureka 注册中心三种角色 Eureka Server 阅读全文
posted @ 2024-05-22 14:23 Hanyta 阅读(9) 评论(0) 推荐(0) 编辑
摘要:什么是Spring Cloud? 基于 Spring Boot 的 Spring 集成应用程序,它利用 Spring Boot 的开发便利性简化了分布式系统的开发,提供与外部系统的集成。 如服务注册与发现、配置中心、负载均衡、断路器、消息总线、数据监控等;换句话说:Spring Cloud 提供了构 阅读全文
posted @ 2024-05-22 12:53 Hanyta 阅读(8) 评论(0) 推荐(0) 编辑
摘要:什么是微服务? 微服务,又称微服务架构,是一种架构风格,它将应用程序构建为以业务领域为模型的小型自治服务集合。简单来说就是把一个项目拆分成独立的多个服务,并且多个服务是可以独立运行的,而每个服务都会占用线程。 微服务之间是如何进行通信的? 同步通信方案:对外REST,对内RPC。 异步通信方案:消息 阅读全文
posted @ 2024-05-22 10:13 Hanyta 阅读(15) 评论(0) 推荐(0) 编辑
摘要:如何进行打包部署:执行maven生命周期中的package命令生成jar包,在项目目录结构下通过java -jar运行jar包,jar包部署要求服务器必须有jre环境。 spring boot项目如何进行属性配置,(4)在未打包前可以通过配置文件进行修改,但是打包后如何进行修改,()代表同时拥有是优 阅读全文
posted @ 2024-05-21 15:09 Hanyta 阅读(6) 评论(0) 推荐(0) 编辑
摘要:Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型 阅读全文
posted @ 2024-05-21 10:00 Hanyta 阅读(151) 评论(0) 推荐(0) 编辑
摘要:SpringBoot中的定时任务主要通过@Scheduled注解以及SchedulingConfigurer接口实现。 @Scheduled注解是Spring提供的一个注解,用于标记方法作为定时任务执行:配置方法在指定的时间间隔或时间点执行,实现各种定时任务需求。 //在你需要定时的方法上加上@Sc 阅读全文
posted @ 2024-05-21 09:17 Hanyta 阅读(200) 评论(0) 推荐(0) 编辑
摘要:之前的发邮件的话比较繁琐,spring bbot帮我们简化了开发,引入mail的启动类支持 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-mail</artifactI 阅读全文
posted @ 2024-05-21 08:47 Hanyta 阅读(42) 评论(0) 推荐(0) 编辑
摘要:什么是swagger? swagger是一款RESTFUL接口的文档在线自动生成+功能测试功能软件。Swagger是一个规范和完整的框架,用于生成、描述、调用和可视化RESTfu风格的web服务。目标是使客户端和文件系统作为服务器一同样的速度来更新文件的方法,参数和模型紧密集成到服务器。 swagg 阅读全文
posted @ 2024-05-20 14:50 Hanyta 阅读(12) 评论(0) 推荐(0) 编辑
摘要:导入依赖 <!--shiro-thymeleaf整合--> <dependency> <groupId>com.github.theborakompanioni</groupId> <artifactId>thymeleaf-extras-shiro</artifactId> <version>xx 阅读全文
posted @ 2024-05-18 16:45 Hanyta 阅读(10) 评论(0) 推荐(0) 编辑
摘要:ShiroConfig中的getShiroFilterFactoryBean方法添加认证代码 //授权,正常情况下,没有授权会跳转到为授权页面 filterMap.put("/user/add","perms[user:add]"); filterMap.put("/user/update","pe 阅读全文
posted @ 2024-05-18 16:36 Hanyta 阅读(7) 评论(0) 推荐(0) 编辑
摘要:就是将之前一步自己模拟的数据要换成从数据库中查出来的真实数据 导入mybatis相关依赖 <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> </dependency> <dependen 阅读全文
posted @ 2024-05-18 16:23 Hanyta 阅读(6) 评论(0) 推荐(0) 编辑
摘要:导入依赖 <!-- Subject 用户 SecurityManager 管理所有用户 Realm 连接数据库 --> <!--shiro整合spring的包--> <dependency> <groupId>org.apache.shiro</groupId> <artifactId>shiro- 阅读全文
posted @ 2024-05-18 16:09 Hanyta 阅读(8) 评论(0) 推荐(0) 编辑
摘要:Shiro 是什么 Apache Shiro 是 Java 的一个安全(权限)框架。Shiro 可以非常容易的开发出足够好的应用,其不仅可以用在 JavaSE 环境,也可以用在 JavaEE 环境。Shiro 可以完成:认证、授权、加密、会话管理、与Web 集成、缓存等。 支持的功能 Authent 阅读全文
posted @ 2024-05-18 15:40 Hanyta 阅读(83) 评论(0) 推荐(0) 编辑
摘要:什么是spring security? spring Security是一个Java框架,用于保护应用程序的安全性。它提供了一套全面的安全解决方案,包括身份验证、授权、防止攻击等功能。Spring Security基于过滤器链的概念,可以轻松地集成到任何基于Spring的应用程序中。它支持多种身份验 阅读全文
posted @ 2024-05-18 09:51 Hanyta 阅读(19) 评论(0) 推荐(0) 编辑
摘要:添加依赖 <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>xxx</version> </dependency> 阅读全文
posted @ 2024-05-16 15:21 Hanyta 阅读(6) 评论(0) 推荐(0) 编辑
摘要:Druid是阿里巴巴开源的一个数据源,主要用于java数据库连接池,相比spring推荐的DBCP和hibernate推荐的C3P0、Proxool数据库连接池,Druid在市场上占有绝对的优势,Druid数据源由于有强大的监控特性、可拓展性等特点。 使用 导入依赖 <dependency> <gr 阅读全文
posted @ 2024-05-16 15:07 Hanyta 阅读(14) 评论(0) 推荐(0) 编辑
摘要:对于管理系统或其他需要用户登录的系统,都需要登录验证,如果没有登录就不行进行相应的操作。 SpringBoot 通过实现HandlerInterceptor接口实现拦截器,通过实现WebMvcConfigurer接口实现一个配置类,在配置类中注入拦截器,最后再通过 @Configuration 注解 阅读全文
posted @ 2024-05-16 14:40 Hanyta 阅读(14) 评论(0) 推荐(0) 编辑
摘要:在resources文件下新建i18n文件,并新建国际化资源文件: Resource Bundle。 点击新增Resource Bundle文件,在Resource bundle base name处填写国际化文件的名称,例如“login”。并点击中间偏右的“+”号,新增国际化语言,此处新增两个语言 阅读全文
posted @ 2024-05-16 14:30 Hanyta 阅读(100) 评论(0) 推荐(0) 编辑
摘要:什么是模版引擎? 模板引擎是为了使用户界面与业务数据(内容)分离而产生的,它可以生成特定格式的文档,用于网站的模板引擎就会生成一个标准的HTML文档。 Thymeleaf介绍 Thymeleaf是适用于Web和独立环境的现代服务器端Java模板引擎。 Thymeleaf的主要目标是为您的开发工作流程 阅读全文
posted @ 2024-05-16 13:52 Hanyta 阅读(24) 评论(0) 推荐(0) 编辑
摘要:当需要引入前端资源时,有许多静态资源,比如:css,js等文件 第一种方式:webjars Webjars本质就是以jar包的方式引入静态资源,以前要导入一个静态资源文件,直接导入即可,但使用spring boot需要使用webjars,比如使用jquery时,只需要引入jquery对应版本的pom 阅读全文
posted @ 2024-05-16 09:31 Hanyta 阅读(8) 评论(0) 推荐(0) 编辑
摘要:JSR-303 是 JAVA EE 6 中的一项子规范,叫做 Bean Validation,官方参考实现是Hibernate Validator。 引入依赖 <!--引入validation的场景启动器--> <dependency> <groupId>org.springframework.bo 阅读全文
posted @ 2024-05-15 21:24 Hanyta 阅读(8) 评论(0) 推荐(0) 编辑
摘要:SpringBoot支持两种格式的配置文件,一种是yml,而另一种就是properties,默认的文件名为application.yml或者.properties properties配置文件:key=value ; yml配置文件 key: value; yml 更好的配置多种数据类型 配置对象数 阅读全文
posted @ 2024-05-15 20:55 Hanyta 阅读(191) 评论(0) 推荐(0) 编辑
摘要:什么是自动装配? 在传统的Spring程序开发中,需要我们手动配置大量的bean,例如数据源,事务管理器,视图解析器等。这些配置过程繁琐而容易出错,加大了开发难度和成本。而Spring Boot的自动装配机制则能够自动完成这些配置过程,使得开发者可以更加专注于业务逻辑的实现。 Spring Boot 阅读全文
posted @ 2024-05-15 20:24 Hanyta 阅读(121) 评论(0) 推荐(0) 编辑
摘要:什么是spring boot? Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化Spring应用的创建、运行、调试、部署等。使用Spring Boot可以做到专注于Spring应用的开发,而无需过多关注XML的配置,Spring Boot使用“约定优于配置”的理念。 阅读全文
posted @ 2024-05-15 16:49 Hanyta 阅读(9) 评论(0) 推荐(0) 编辑
摘要:Json是一种轻量级的数据交换格式,应该在一个程序员的开发生涯中是常接触的。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。 Fastjson是一个Java库,可用于将Java对象转换为其JSON表示形式,也可以用于 阅读全文
posted @ 2024-05-14 14:42 Hanyta 阅读(25) 评论(0) 推荐(0) 编辑
摘要:springmvc中的过滤器处理中文 修改web.xml文件 <!--配置Spring提供的过滤器,解决中文乱码问题--> <filter> <filter-name>CharacterEncodingFilter</filter-name> <filter-class>org.springfram 阅读全文
posted @ 2024-05-14 12:34 Hanyta 阅读(4) 评论(0) 推荐(0) 编辑
摘要:自定义过滤器 自定义实现Filter接口 public class MyCharacterFilter implements Filter { @Override public void init(FilterConfig filterConfig) throws ServletException 阅读全文
posted @ 2024-05-14 12:32 Hanyta 阅读(51) 评论(0) 推荐(0) 编辑
摘要:转发和重定向的区别 转发是一个请求一次响应,重定向是两次请求两次响应; 转发地址栏不发生变化,重定向地址栏发生变化(会显示重定向后的地址); 转发只能转发到本项目中其他控制器(在学习JavaWeb的时候,说的是:转发只能转发到本项目中其他Servlet),重定向不仅能重定向到本项目中的其他控制器(或 阅读全文
posted @ 2024-05-14 11:16 Hanyta 阅读(77) 评论(0) 推荐(0) 编辑
摘要:RESTFUL是一种网络应用程序的设计风格和开发方式,基于HTTP,可以使用 XML 格式定义或 JSON 格式定义。最常用的数据格式是JSON。由于JSON能直接被JavaScript读取,所以,使用JSON格式的REST风格的API具有简单、易读、易用的特点。 传统模式 URI 和 RESTfu 阅读全文
posted @ 2024-05-14 11:00 Hanyta 阅读(5) 评论(0) 推荐(0) 编辑
摘要:@Controller 在使用 Spring MVC 框架开发 Web 应用程序时,@Controller 注解是用来标识一个类为控制器(Controller)的注解。控制器层负责接收用户请求,并根据请求处理逻辑选择合适的业务逻辑进行处理,最终返回响应给用户。 控制器的主要作用包括: 接收用户请求: 阅读全文
posted @ 2024-05-14 10:37 Hanyta 阅读(10) 评论(0) 推荐(0) 编辑
摘要:什么是MVC? MVC的全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,是一种软件设计典范。它是用一种业务逻辑、数据与界面显示分离的方法来组织代码,将众多的业务逻辑聚集到一个部件里面,在需要改进和个性化定制界面及用户交互 阅读全文
posted @ 2024-05-14 10:23 Hanyta 阅读(5) 评论(0) 推荐(0) 编辑
摘要:由于 Maven 可能存在 资源过滤 的问题,pom.xml 增加如下配置: <build> <resources> <resource> <directory>src/main/java</directory> <includes> <include>**/*.properties</includ 阅读全文
posted @ 2024-05-14 10:08 Hanyta 阅读(71) 评论(0) 推荐(0) 编辑
摘要:在 Spring 框架中事务管理有两种方式:一种是传统的编程式事务管理,即通过编写代码实现的事务管理,就是用try catch代码块来捕捉错误;另一种是基于 AOP 技术实现的声明式事务管理,Spring 的声明式事务管理在底层采用了 AOP 技术,其最大的优点在于无须通过编程的方式管理事务,只需要 阅读全文
posted @ 2024-05-13 16:54 Hanyta 阅读(12) 评论(0) 推荐(0) 编辑
摘要:整合步骤: 首先将mybatis-config.xml环境的配置:数据源、驱动、url、username、password…这些基础配置移交给Spring的核心配置文件application.xml文件中!创建bean对象dataSource顶替Resource。 再通过dataSource对象,创 阅读全文
posted @ 2024-05-13 16:16 Hanyta 阅读(17) 评论(0) 推荐(0) 编辑
摘要:什么是AOP? AOP(Aspect Oriented Programming)意为:面向切面编程,体现了横切的思想,意思是在添加某项功能的时候,是以切面插入的方式实现的,对原有的代码不会产生改变。通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。 AOP在spring中的作用:在不改 阅读全文
posted @ 2024-05-13 15:07 Hanyta 阅读(231) 评论(0) 推荐(0) 编辑
摘要:为什么要代理? 解决在直接访问对象时带来的问题,比如说:要访问的对象在远程的机器上。在面向对象系统中,有些对象由于某些原因(比如对象创建开销很大,或者某些操作需要安全控制,或者需要进程外的访问),直接访问会给使用者或者系统结构带来很多麻烦,我们可以在访问此对象时加上一个对此对象的访问层。 什么是代理 阅读全文
posted @ 2024-05-13 14:24 Hanyta 阅读(12) 评论(0) 推荐(0) 编辑
摘要:单例模式提供了一种创建对象的最佳方式: 这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。 单例类只能有一个实例;单例类必须自己创建自己的唯一实例;单例类必须给所有其他对象提供这一实例。 为什 阅读全文
posted @ 2024-05-13 11:26 Hanyta 阅读(8) 评论(0) 推荐(0) 编辑
摘要:要想使用注解,必须加入约束和相应配置 <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001 阅读全文
posted @ 2024-05-12 18:21 Hanyta 阅读(6) 评论(0) 推荐(0) 编辑
摘要:Spring Bean的作用域主要有五种 Singleton是单例类型,就是在创建起容器时就同时自动创建了一个bean的对象,不管你是否使用,他都存在了,每次获取到的对象都是同一个对象。注意,singleton作用域是Spring中的缺省作用域(默认的作用域)。 prototype是原型类型,它在我 阅读全文
posted @ 2024-05-12 17:41 Hanyta 阅读(6) 评论(0) 推荐(0) 编辑
摘要:什么是IOC? 控制反转,把对象创建和对象之间的调用过程交给spring进行管理,为了降低耦合度 两种IOC接口 BeanFactory:IOC 容器基本实现,是 Spring 内部的使用接口,不提供开发人员进行使用加载配置文件时候不会创建对象,在获取对象(使用)才去创建对象 Application 阅读全文
posted @ 2024-05-12 16:52 Hanyta 阅读(9) 评论(0) 推荐(0) 编辑
摘要:Spring是一个轻量级Java开发框架,最根本的使命是解决企业级应用开发的复杂性,即简化Java开发。 Spring为企业级开发提供了丰富的功能,但是这些功能的底层都依赖于它的两个核心特性,也就是控制反转(IOC)和面向切面编程(aspect-oriented programming,AOP)。 阅读全文
posted @ 2024-05-12 14:30 Hanyta 阅读(11) 评论(0) 推荐(0) 编辑
摘要:缓存 缓存(即cache)的作用是为了减去数据库的压力,提高数据库的性能。缓存实现的原理是从数据库中查询出来的对象在使用完后不销毁,而是存储在内存(缓存)中,当再次需要获取该对象时,直接从内存中获取,不再向数据库执行select语句,减少对数据库的查询次数,提高了数据库的性能。缓存是使用Map集合存 阅读全文
posted @ 2024-05-11 16:44 Hanyta 阅读(10) 评论(0) 推荐(0) 编辑
摘要:当你在业务中有需要通过传过来的条件来进行sql查询的时候,之前的手动拼接既麻烦又容易出错,动态sql就可以根据场景动态的构建查询。 常用的动态sql标签 if标签 <select id="selectAllBlog" parameterType= "map" resultType="Blog"> s 阅读全文
posted @ 2024-05-11 15:33 Hanyta 阅读(3) 评论(0) 推荐(0) 编辑
摘要:环境准备 数据库创建:一个teacher表,字段有id(主键),name,一个student表,字段为id(主键),name,tid(外键) 建表语句: CREATE TABLE `teacher` ( `id` INT(10) NOT NULL, `name` VARCHAR(30) DEFAUL 阅读全文
posted @ 2024-05-11 14:37 Hanyta 阅读(10) 评论(0) 推荐(0) 编辑
摘要:什么是Lombok插件? Lombok是一个Java库,能自动插入编辑器并构建工具,简化Java开发。通过添加注解的方式,不需要为类编写getter或eques方法,同时可以自动化日志变量。 使用 安装插件 打开idea的设置,点击Plugins,点击Browse repositories,在弹出的 阅读全文
posted @ 2024-05-11 13:04 Hanyta 阅读(2145) 评论(0) 推荐(0) 编辑
摘要:JDBC执行流程回顾 JBDC的底层主要是三个接口对象:Connection、Statement、ResultSet。 Connection用于建立与数据库的连接,Statement用于向数据库发送sql语句,ResultSet用于封装sql查询语句的结果。 JDBC操作数据库主要步骤: 注册驱动 阅读全文
posted @ 2024-05-10 20:32 Hanyta 阅读(5) 评论(0) 推荐(0) 编辑
摘要:mybatis常用注解 使用注解方式开发持久层接口 public interface UserMapper { /** * 查询所有用户 * @return */ @Select("select * from user") List<User> selectAll(); /** * 更新用户 * @ 阅读全文
posted @ 2024-05-10 19:59 Hanyta 阅读(8) 评论(0) 推荐(0) 编辑
摘要:在mybatis-config.xml中可以配置日志的实现 STDOUT_LOGGING标准日志的实现,比较简单 <settings> <setting name="logImpl" value="STDOUT_LOGGING"/> </settings> LOG4J常用,可以进行一些自定义的配置 阅读全文
posted @ 2024-05-10 19:19 Hanyta 阅读(6) 评论(0) 推荐(0) 编辑
摘要:为什么需要用到ResultMap? 它可以将查询到的复杂数据(比如查询到几个表中数据)映射到一个结果集当中,设置灵活,应用广泛。 应用在数据库字段信息与对象属性不一致或者需要做复杂的联合查询以便自由控制映射结果。 简单的映射(建立SQL查询结果字段与实体属性的映射关系) public class U 阅读全文
posted @ 2024-05-10 18:55 Hanyta 阅读(10) 评论(0) 推荐(0) 编辑
摘要:生命周期和作用域是十分重要的,错误的使用会导致非常严重的并发问题。 Mybatis的执行流程 详细讲解 SqlSessionFactoryBuilder:一旦创建了SqlSessionFactory,就不需要它了,比较适合在局部变量中创建。 SqlSessionFactory:相当于数据库的连接池; 阅读全文
posted @ 2024-05-10 17:51 Hanyta 阅读(101) 评论(0) 推荐(0) 编辑
摘要:在resource目录下,创建mybatis-config.xml(官方建议起名方式) 核心配置文件常用元素 properties: 通过resource属性从外部指定属性文件(db.properties),该属性文件描述数据库连接的相关配置(数据库驱动、连接数据库的url、数据库用户名、数据库密码 阅读全文
posted @ 2024-05-10 17:08 Hanyta 阅读(128) 评论(0) 推荐(0) 编辑
摘要:用map进行传参更加灵活,可以随意封装 举例: //接口中的方法 User selectByMap(Map<String,Object> map); mapper.xml中的sql语句的编写 <!--通过map进行条件查询--> <select id="selectByMap" resultType 阅读全文
posted @ 2024-05-10 16:10 Hanyta 阅读(77) 评论(0) 推荐(0) 编辑
摘要:在之前的操作之后,若要编写增删改操作,需要变动的只有UserMapper接口,UserMapper.xml以及测试类 举例 删除操作-delete: //Dao层接口UserMapper增加deleteById方法: int deleteById(int id); 映射文件UserMapper.xm 阅读全文
posted @ 2024-05-10 10:20 Hanyta 阅读(9) 评论(0) 推荐(0) 编辑
摘要:注意与之前JDBC的区别,简化在哪里 准备工作 数据库,表的创建: 创建一个名为mybatis的数据库,在其中创建user表,字段为is,name,pwd 项目的准备: 新建一个普通的maven项目作为父项目,删除src目录,在pom文件中导入必要的依赖(mysql-connector-java,m 阅读全文
posted @ 2024-05-10 10:02 Hanyta 阅读(5) 评论(0) 推荐(0) 编辑
摘要:什么是mybatis? mybatis是一款用于持久层的、轻量级的半自动化ORM框架,封装了所有jdbc操作以及设置查询参数和获取结果集的操作,支持自定义sql、存储过程和高级映射。 框架用于持久层,就是说这个框架是和数据库进行交互的,用于数据库中数据操作的框架 轻量级框架的概念可以简单的理解为所用 阅读全文
posted @ 2024-05-10 08:59 Hanyta 阅读(19) 评论(0) 推荐(0) 编辑
摘要:邮件发送和接收的协议 SMTP协议 (Simple Mail Transfer Protocol) 属于TCP/IP协议族。 控制信件的中转方式,帮助每台计算机在发送或中转信件时找到下一个目的地。 SMTP服务器是遵循SMTP协议的发送邮件服务器。 POP3协议 (Post Office Proto 阅读全文
posted @ 2024-05-09 20:10 Hanyta 阅读(46) 评论(0) 推荐(0) 编辑
摘要:文件上传原理 客户端请求:用户通过浏览器或应用程序选择要上传的文件,并发送 HTTP POST 请求到服务器。 服务器接收:服务器接收到请求后,解析请求头和请求体,获取上传的文件数据。 文件处理:服务器将文件数据存储在临时目录中,然后进行进一步的处理,如验证、重命名等。 存储:最终,服务器将处理后的 阅读全文
posted @ 2024-05-09 17:11 Hanyta 阅读(59) 评论(0) 推荐(0) 编辑
摘要:```java //剩下的就是用户的增删改了,大致思路都是一样的,但是都需要处理事务! //service层的举例: public boolean add(User user) { boolean flag = false; Connection connection = null; try { c 阅读全文
posted @ 2024-05-09 15:45 Hanyta 阅读(24) 评论(0) 推荐(0) 编辑
摘要:用户管理页面的展示 以上可见:当前页面需要从数据中查询的数据有,用户角色的下拉列表,所有的用户信息,分页信息,这是三个不同的查询; 具体的实现 //写好的分页工具类 //封装:属性私有,向外提供set,get方法,在set方法中可以做一些安全性的判断。 public class PageSuppor 阅读全文
posted @ 2024-05-09 15:20 Hanyta 阅读(24) 评论(0) 推荐(0) 编辑
摘要:整体思路: 在dao层写接口约束,在实现类中写乡音给的代码,传入的参数是用户的id,通过用户的id修改此用户的密码,返回参数类型为int,即有几条受影响的条数; 在service层中写service的接口约束,在实现类中调用dao层,这里的调用通常都是利用实例化service实现类时通过构造方法实例 阅读全文
posted @ 2024-05-09 15:04 Hanyta 阅读(89) 评论(0) 推荐(0) 编辑
摘要:整体思路 设置欢迎页:设置完欢迎页之后,tomcat启动后会自动跳转到欢迎页而不是index.jsp 登录的整体步骤: 已经拥有前端页面:login.jsp,登录成功,跳转到业务主页面,登录失败输出提示信息,回到登录页面 编写Dao层:接口和实现类,它的作用是从数据库中获取登录的用户 //通过use 阅读全文
posted @ 2024-05-08 16:51 Hanyta 阅读(19) 评论(0) 推荐(0) 编辑
摘要:准备工作 新建maven web项目 测试Tomcat 导入相关依赖: 数据库准备 supermarket:smbms_address,smbms_bill,smbms_provider,smbms_role,smbms_user 构建相应的实体类 编写配置文件 db.properties 编写数据 阅读全文
posted @ 2024-05-08 16:08 Hanyta 阅读(7) 评论(0) 推荐(0) 编辑
摘要:MVC模型 MVC 模式代表 Model-View-Controller(模型-视图-控制器) 模式。这种模式用于应用程序的分层开发。 Model(模型) - 模型代表一个存取数据的对象或 JAVA POJO。它也可以带有逻辑,在数据变化时更新控制器。 View(视图) - 视图代表模型包含的数据的 阅读全文
posted @ 2024-05-08 10:36 Hanyta 阅读(9) 评论(0) 推荐(0) 编辑
摘要:JavaBean是一个遵循特定写法的Java类 这个Java类必须具有一个无参的构造函数 属性必须私有化。 私有化的属性必须通过public类型的方法暴露给其它程序,并且方法的命名也必须遵守一定的命名规范。 Java Bean与数据库一一对应,表名与类对应,字段名与属性对应 例:你有一个表是Pers 阅读全文
posted @ 2024-05-08 09:15 Hanyta 阅读(9) 评论(0) 推荐(0) 编辑
摘要:什么是Session 当用户请求来自应用程序的Web页时,服务器会给每一个用户(浏览器)创建一个Session对象; 用户在应用程序的Web页之间跳转时,存储在Session对象中的变量将不会丢失,而是在整个用户会话中一直存在下去,默认情况下,只要浏览器没有关闭,这个Session就一直存在。 Se 阅读全文
posted @ 2024-05-07 19:49 Hanyta 阅读(10) 评论(0) 推荐(0) 编辑
摘要:cookie的概念 cookie是一种客户端会话技术将数据保存到客户端。 cookie的利弊: 1)将数据保存到客户端,十分方便,同时减轻服务器存储压力 2)对保存数据的个数(20)及大小有限制(4kb) 作用 cookie用来保存少量及不太敏感的数据 可以在不登入的情况下,对客户端完成身份识别(即 阅读全文
posted @ 2024-05-07 16:48 Hanyta 阅读(5) 评论(0) 推荐(0) 编辑
摘要:HttpServletResponse类 HttpServletResponse类和HttpServletRequest类一样。每次请求进来,Tomcat服务器都会创建一个Response对象传递给Servlet程序去使用, HttpServletRequest表示请求过来的信息,HttpServl 阅读全文
posted @ 2024-05-07 15:50 Hanyta 阅读(12) 评论(0) 推荐(0) 编辑
摘要:什么是servlet? Java Servlet 是运行在 Web 服务器或应用服务器上的程序,它是作为来自 Web 浏览器或其他 HTTP 客户端的请求和 HTTP 服务器上的数据库或应用程序之间的中间层。 使用 Servlet,可以收集来自网页表单的用户输入,呈现来自数据库或者其他源的记录,还可 阅读全文
posted @ 2024-05-06 22:00 Hanyta 阅读(8) 评论(0) 推荐(0) 编辑
摘要:maven: apache组织提供的一个顶级项目,由Java开发 作用: 管理项目构建生命周期 管理项目中jar(核心功能)。自动帮程序员甄别和下载第三方库(jar) 管理项目基础信息(文档管理、测试报告) 配置环境变量: 为了在任何路径下都可以使用Maven命令,所以需要配置 JAVA_HOME: 阅读全文
posted @ 2024-05-06 16:03 Hanyta 阅读(27) 评论(0) 推荐(0) 编辑
摘要:页面 静态页面: 即静态网页,是实际存在的,无需经过服务器的编译,直接加载到客户浏览器上显示出来。 静态页面需要占一定的服务器空间,且不能自主管理发布更新的页面,如果想更新网页内容,要通过FTP软件把文件DOWN下来用网页制作软件修改(通过fso等技术例外)。 常见的静态页面举例:.html扩展名的 阅读全文
posted @ 2024-05-06 15:45 Hanyta 阅读(15) 评论(0) 推荐(0) 编辑
摘要:什么是JDBC,为什么要使用JDBC? 在web开发中,不可避免的地要使用数据库来存储和管理数据。为了在java语言中提供数据库访问的支持,Sun公司于1996年提供了一套访问数据的标准Java类库,即JDBC。 JDBC,全称是Java Database Connectivity,它是一套统一的、 阅读全文
posted @ 2024-05-06 11:25 Hanyta 阅读(11) 评论(0) 推荐(0) 编辑
摘要:mysql访问权限系统表 mysql的权限由四个表来控制权限,分别是user表,db表,tables_priv表,columns_priv表 表名 作用 user 存放用户账号、密码、主机信息和全局权限 db 数据库级别的权限表 tables_priv 表级别的权限表 columns_priv 列级 阅读全文
posted @ 2024-05-05 20:53 Hanyta 阅读(16) 评论(0) 推荐(0) 编辑
摘要:索引是对数据库表中一列或多列的值进行排序的一种结构。MySQL索引的建立对于MySQL的高效运行是很重要的,索引可以大大提高MySQL的检索速度。 索引的优缺点: 优点: 所有的MySql列类型(字段类型)都可以被索引,也就是可以给任意字段设置索引。 大大加快数据的查询速度。 缺点: 创建索引和维护 阅读全文
posted @ 2024-05-05 16:47 Hanyta 阅读(5) 评论(0) 推荐(0) 编辑
摘要:事务的四大特性: 特性 解释 原子性(Atomicity) 原子性是指事务是一个不可分割的工作单位,事务中的操作要么全部成功,要么全部失败。 一致性(Consistency) 事务发生前后,数据的完整性要保持一致。 隔离性(Isolation) 隔离性是多个用户并发访问数据库时,数据库为每一个用户开 阅读全文
posted @ 2024-05-05 15:49 Hanyta 阅读(9) 评论(0) 推荐(0) 编辑
摘要:1.基本语法 SELECT column1, column2, ... FROM table_name [WHERE condition] [ORDER BY column_name [ASC | DESC]] [LIMIT number]; * ORDER BY column_name [ASC 阅读全文
posted @ 2024-05-03 14:10 Hanyta 阅读(24) 评论(0) 推荐(0) 编辑
摘要:插入语句 --语法 INSERT INTO table_name (column1, column2, column3, ...) VALUES (value1, value2, value3, ...); --如果数据是字符型,必须使用单引号 ' 或者双引号 ",如: 'value1', "val 阅读全文
posted @ 2024-05-02 14:37 Hanyta 阅读(3) 评论(0) 推荐(0) 编辑
摘要:为什么要配置环境变量? 当你想直接用cmd打开某个.exe软件,但却出现以上情况时,可以通过配置环境变量来解决。配置了常用软件的环境变量后,在系统的任意路径下,打开cmd,输入软件,即可打开应用。 环境变量:是在操作系统中用来指定操作系统运行环境的一些参数。 环境变量中的path环境变量:当要求系统 阅读全文
posted @ 2024-05-02 13:43 Hanyta 阅读(4) 评论(0) 推荐(0) 编辑
摘要:元注解:负责注解其他的注解,Java定义了4个标准的meta-annotation类型 @Target:用于描述注解的适用范围 @Retention:表示需要再什么级别保存该注解信息,用于描述注解的生命周期(source<class<runtime) @Document:该注解江北包含在javado 阅读全文
posted @ 2024-05-01 19:52 Hanyta 阅读(7) 评论(0) 推荐(0) 编辑
摘要:程序,进程,线程 程序是指令和数据的有序集合,其本身没有任何运行的含义,是一个静态的概念; 进程是执行程序的一次执行过程,是一个动态的概念,是系统资源分配的单位; 通常在一个进程中可以包含若干个线程,线程是CPU调度和执行的单位; 若是单核cpu,则多线程是模拟出来的,在一个cpu的情况下,在同一个 阅读全文
posted @ 2024-05-01 10:15 Hanyta 阅读(10) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示