Java EE

SpringBoot切面Aop的demo简单讲解

删除回忆录丶 提交于 2020-08-04 20:00:07
前言 本篇文章主要介绍的是SpringBoot切面Aop的demo简单讲解。 SpringBoot Aop 说明:如果想直接获取工程那么可以直接跳到底部,通过链接下载工程代码。 切面(Aop) 一、概念 AOP(Aspect OrientedProgramming):面向切面编程,面向切面编程(也叫面向方面编程),是目前软件开发中的一个热点,也是Spring框架中的一个重要内容。利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。 二、用途 日志记录,性能统计,安全控制,权限管理,事务处理,异常处理,资源池管理。 三、详解 1.切面(Aspect): 官方的抽象定义为“一个关注点的模块化,这个关注点可能会横切多个对象”,在本例中,“切面”就是类TestAspect所关注的具体行为,例如:AServiceImpl.barA()的调用就是切面TestAspect所关注的行为之一。“切面”在ApplicationContext中 aop:aspect 来配置。 2.连接点(Joinpoint): 程序执行过程中的某一行为,例如,AServiceImpl.barA()的调用或者BServiceImpl.barB(String _msg, int _type)抛出异常等行为。 3.通知(Advice): “切面

学生成绩管理系统/学生信息管理系统

白昼怎懂夜的黑 提交于 2020-08-04 19:27:09
学校课程设计作业,完成一个简单的学生信息管理系统,考虑到系统实用性,把它做成了一个简单的能够使用的学生成绩管理系统,包含了学生信息管理,就当做练手吧。 发一个博客,做展示用!! 第一次做的一个比较完整的系统,难免会有一些bug(^_^) 下载链接: 学生成绩管理系统 一、 开发背景 软件名称:学生成绩管理系统(SSMS) 使用对象:小学、初中、高中 二、 需求分析 1. 系统分析 该学生信息管理系统涉及到学生、教师、系统管理员、班级、学生成绩、课程。设置一个系统管理员对系统进行管理。所有用户需输入账号、密码登录进入系统;管理员进入系统后可对学生、老师、班级、课程进行增删改查操作;学生进入系统,查看成绩、查看和修改自己的信息;老师进入系统后,对自己这门课程的学生设置课程成绩、查看和修改自己的信息,查看学生的信息和成绩、以及统计分析学生的成绩; 管理员为班级设置年级,为年级设置课程,为班级的每门课程设置老师,为学生设置班级。一个年级有多门课程(语文、数学、外语等等),班级的每门课程只能有一名老师,一个老师可以有多门课程;老师选择自己这门课程为该课程的学生登记成绩。老师可以查看其他老师的信息(可以当成是老师的通讯录),查看本课程学生的信息和成绩;学生可以查看班级其他同学的信息(可以看成是班级的同学录)。 考试分为两种,一种是年级统考,一种是平时考试。年级统考需要管理员事先添加一次年级统考

Cookie--记住上一次访问时间案例(Java)

走远了吗. 提交于 2020-08-04 19:00:02
Cookie--记住上一次访问时间案例(Java) 博客说明 文章所涉及的资料来自互联网整理和个人总结,意在于个人学习和经验汇总,如有什么地方侵权,请联系本人删除,谢谢! 需求 访问一个Servlet,如果是第一次访问,则提示:您好,欢迎您首次访问。 如果不是第一次访问,则提示:欢迎回来,您上次访问时间为:显示时间字符串 分析 可以采用Cookie来完成 在服务器中的Servlet判断是否有一个名为lastTime的cookie 有:不是第一次访问 响应数据:欢迎回来,您上次访问时间为:2020年06月26日 10:52:29 写回Cookie:lastTime=2020年06月26日 10:52:29 没有:是第一次访问 响应数据:您好,欢迎您首次访问 写回Cookie:lastTime=2020年06月26日 10:52:29 代码 package cn.guizimo.cookie; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.Cookie; import javax.servlet.http.HttpServlet; import javax.servlet.http

【微服务】服务网关 Zuul 工作原理源码解析

烈酒焚心 提交于 2020-08-04 17:58:40
zuul 服务网关工作原理 1. zuul 基础概念 1.1 zuul 自动化配置:ZuulServerAutoConfiguration // Zuul 空指处理器,处理所有非默认/zuul路径请求 @Bean public ZuulController zuulController() { return new ZuulController(); } // Zuul 请求映射器: 绑定请求路径与处理器关系(Springmvc 标准组件) @Bean public ZuulHandlerMapping zuulHandlerMapping(RouteLocator routes, ZuulController zuulController) { ZuulHandlerMapping mapping = new ZuulHandlerMapping(routes, zuulController); mapping.setErrorController(this.errorController); mapping.setCorsConfigurations(getCorsConfigurations()); return mapping; } // 注入ZuulServlet,负责zuul业务实际处理, 默认注入 @Bean @ConditionalOnMissingBean

搭建ssm框架,可实现登录和数据展示以及增删改查

你说的曾经没有我的故事 提交于 2020-08-04 17:56:58
需求: 后台使用ssm(spring-springMVC-mybatis)进行整合 前台使用bootstrap框架 前后台交互使用Ajax进行发送 表结构: 登录页面后显示所有用户信息,可对每条进行增删改查 登录时也使用本表的user_name和user_pwd进行校验 项目目录结构 步骤一:搭建框架,进行测试 applicationContext.xml:spring配置文件,内容还包括spring和mybatis整合 mybatis.xml:mybatis配置文件 springmvcServlet-servlet.xml:springMVC配置文件 1.在src目录下新建context包,用来存放配置文件 2.配置web.xml 3.导入需要的jar包 由于本项目还会使用到junit测试,pageHelper等组件,所以有些jar包不是在搭框架的时候所必须的,必须的jar包大家可以问度娘哈 编写web.xml 代码中注释写的很完整,这里直接贴代码了,如果哪里有看不懂的大家可以留言或私信 <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi

不是吧,阿sir,你竟然三分钟就解释了高性能秒杀系统的设计思考

亡梦爱人 提交于 2020-08-04 17:40:55
前言 秒杀大家都不陌生。自2011年首次出现以来,无论是双十一购物还是 12306 抢票,秒杀场景已随处可见。简单来说,秒杀就是在同一时刻大量请求争抢购买同一商品并完成交易的过程。从架构视角来看,秒杀系统本质是一个高性能、高一致、高可用的三高系统。而打造并维护一个超大流量的秒杀系统需要进行哪些关注,就是本文讨论的话题。 整体思考 首先从高维度出发,整体思考问题。秒杀无外乎解决两个核心问题,一是并发读,一是并发写,对应到架构设计,就是高可用、一致性和高性能的要求。关于秒杀系统的设计思考,本文即基于此 3 层依次推进,简述如下—— 高性能 。秒杀涉及高读和高写的支持,如何支撑高并发,如何抵抗高IOPS?核心优化理念其实是类似的:高读就尽量"少读"或"读少",高写就数据拆分。本文将从动静分离、热点优化以及服务端性能优化 3 个方面展开 一致性 。秒杀的核心关注是商品库存,有限的商品在同一时间被多个请求同时扣减,而且要保证准确性,显而易见是一个难题。如何做到既不多又不少?本文将从业界通用的几种减库存方案切入,讨论一致性设计的核心逻辑 高可用 。大型分布式系统在实际运行过程中面对的工况是非常复杂的,业务流量的突增、依赖服务的不稳定、应用自身的瓶颈、物理资源的损坏等方方面面都会对系统的运行带来大大小小的的冲击。如何保障应用在复杂工况环境下还能高效稳定运行,如何预防和面对突发问题

Android学习-服务 Service 基础

醉酒当歌 提交于 2020-08-04 16:32:21
Android Service 服务(Service) 是Android中的四大组件之一,它能够长期在后台运行,服务是不需要提供用户界面。即使用户切到另一应用程序,服务仍可以在后台运行。 1.Service 的创建 1.Service 的创建 服务创建就是新建一个java类,让他继承Service,添加未实现的方法 @Nullable @Override public IBinder onBind ( Intent intent ) { return null ; } 2.在清单文件中配置 其实这就类似javaweb在web.xml配置过滤器一样,在AndroidManifest.xml文件中application节点下配置,与activity同级; 一下贴出所有的 application 节点,方便理解 < application android : allowBackup = "true" android : icon = "@mipmap/ic_launcher" android : label = "@string/app_name" android : roundIcon = "@mipmap/ic_launcher_round" android : supportsRtl = "true" android : theme = "@style/AppTheme" > <

大厂通用最全IDEA使用手册

孤者浪人 提交于 2020-08-04 16:22:16
这里写目录标题 一:IDEA 简介 IDEA版本说明 IDEA特点 二:IDEA 安装 三:IDEA 初体验 四:IDEA 基本配置 4.1 字体设置 4.2 主题设置 4.3 Maven和Gradle设置 4.4 忽略隐藏工程某种类型文件 4.5 快捷键设置其他版本,例如Eclipse 4.6 设置鼠标滑轮修改字体大小 4.7 设置鼠标悬浮提示 4.8 设置自动导包删包 4.9 设置行号和方法分隔符 4.10 设置代码提示时忽略大小写 4.11 设置单行,多行,文档注释的颜色格式等 4.12 设置编码 4.13 设置自动编译 4.14 快捷键 4.15 代码模板 4.16 类注释模板 一:IDEA 简介 IDEA全称 IntelliJ IDEA ,是用于java语言开发的集成环境(也可用于其他语言),IntelliJi在业界被公认为最好的java开发工具之一,尤其在智能代码助手、代码自动提示、重构、J2EE支持、Ant、JUnit、 CVS整合、代码审查、创新的GUI设计等方面的功能可以说是超常的。IDEA是JetBrains公司的产品,这家公司总部位于捷克共和国的首都布拉格,开发人员以严谨著称的东欧程序员为主。 对于IDEA,JetBrans 公司提出的最新口号是 Capable and Ergomomic IDE for JVM ,翻译过来就是面向JVM

thymeleaf中的fragment使用

浪子不回头ぞ 提交于 2020-08-04 16:16:36
fragment介绍 fragment类似于JSP的tag,在html中文件中,可以将多个地方出现的元素块用fragment包起来使用。 fragment使用 定义fragment 所有的fragment可以写在一个文件里面,也可以单独存在,例如 <footer th:fragment="copy"> the content of footer </footer> fragment的引用 th:insert:保留自己的主标签,保留th:fragment的主标签。 th:replace:不要自己的主标签,保留th:fragment的主标签。 th:include:保留自己的主标签,不要th:fragment的主标签。(据说,官方3.0后不推荐) 导入片段: <div th:insert="footer :: copy"></div> <div th:replace="footer :: copy"></div> <div th:include="footer :: copy"></div> 结果为: <div> <footer> the content of footer </footer> </div> <footer> the content of footer </footer> <div> the content of footer </div> 在Springboot中