- 博客(18)
- 收藏
- 关注
原创 AQS工作流程
一、概述AQS:AbstractQuenedSynchronizer抽象的队列式同步器。是除了java自带的synchronized关键字之外的锁机制。二、原理aqs实际上维持的是一个双向链表队列,但同时与一般队列不同的是,队首指向的就是当前占有锁的对象。Node结构: thread,waitStatue以公平锁为例:当运行时,主要使用的是aquire()函数1、将node节点加到队列尾部:addWaiter():tail!=null?添加到尾部否则enq():添加新节点,将node当成尾
2020-10-25 14:02:22
371
原创 spring boot自动注入流程解析
一、概述spring boot中的依赖反转的核心就是自动注入,也就是从ioc容器中获取bean按bytype、byname、construture等方式进行注入。注入的方式通常来说主要分为手动注入以及自动注入手动注入:1.construture:构造方法注入2.set方法注入自动注入:@autowired:1.构造方法2.普通非静态字段3.普通方法自动配置的开启涉及到spring boot中的一个核心注解@EnableAutoConfiguration,起底下包含一个@import
2020-10-24 15:09:49
1760
原创 Shiro使用总结
Apache Shiro是一个强大且易用的Java安全框架,执行身份验证、授权、密码和会话管理。shiro主要包括三大核心组件:Subject、SecurityManager、Realm,其中subject:即操作主体,封装了一系列安全操作;SecurityManager:Shiro通过SecurityManager来管理内部组件实例,并通过它来提供安全管理的各种服务。Realm:相当于一个DAO,提供验证所需的数据Shiro创建流程:1、创建Realm类继承AuthorizingRealm,
2020-10-08 19:46:17
187
1
原创 对于AOP的粗浅理解
Spring Boot中面向切面编程大家应该是经常会用到,但是作为学生,很多人可能都没想过里面的细节,这里我根据自己已学到的知识做一个简单的论述。在编写项目的过程中,我们主要是@Aspect声明为切面,用@Pointcut将函数声明为切入点并与连接点进行绑定,再之后就是各种增强器Advisor了,各种增强器主要是通过后置处理器实现的。AOP原理:研究各种Enable组件:看有没有给容器注册组件,各组件相应的功能又是什么,什么时候工作@EnableAspectJAutoProxy1、导入Aspect
2020-08-10 12:06:57
201
原创 shiro权限控制
1.shiro权限管理1.新建shiroConfiguration类,与po、vo包同级@Configurationpublic class ShiroCinfiguration { //创建realm @Bean public NewsRealm getRealm(){return new NewsRealm();} //创建安全管理器 @Bean public SecurityManager securityManager(NewsRea
2020-08-05 23:40:35
208
原创 Spring boot博客项目实战8(空值错误和aspect日志)
对于web项目来说,常常由于各种原因会传输空值数据给前端,而这往往会导致错误的发生。
2020-08-05 22:54:25
234
原创 Spring Boot项目实战6(归档处理,异常处理,登录拦截)
1、归档1.在NewService中定义接口 Map<String,List<News>> archiveNew(); Long countNew();2.在NewServiceImpl中实现上述接口 @Override public Map<String, List<News>> archiveNew() { List<String> years = newRepository.findGro
2020-08-04 21:42:05
170
原创 Spring Boot 项目实战5(评论、分类页面、标签页面)
接上:https://blog.youkuaiyun.com/qq_43923042/article/details/107799148上次讲到新闻详情,详情界面如下:显然,单单有新闻是不够的,还要有底下评论1、新建实体类Comment@Entity@Table(name = "t_comment")public class Comment { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long
2020-08-04 21:33:27
280
原创 Spring Boot项目实战4(主页信息展示+详情页)
接上:https://blog.youkuaiyun.com/qq_43923042/article/details/107718118上面的已经基本完成后台管理功能了,接下来是前台的制作上面是完成图,可以看到主要需要分类,推荐,新闻,推荐四个列表,即要传这四个参数到前端。以新闻为例子1、DAO层:public interface NewRepository extends JpaRepository<News, Long>, JpaSpecificationExecutor<News&g
2020-08-04 21:11:11
401
原创 Spring boot博客项目实战3(新闻管理)
接上:https://blog.youkuaiyun.com/qq_43923042/article/details/107681238博客中新闻管理也是分为增删査改操作,按结构来分也是先dao层,service层再cotroller层1、新建实体类:@Entity@Table(name="t_news")public class News { @Id @GeneratedValue(strategy= GenerationType.IDENTITY) Long id; St
2020-07-31 17:36:43
253
原创 Spring Boot 博客项目实战2(分类管理和标签管理)
接上次:https://blog.youkuaiyun.com/qq_43923042/article/details/1076496431.新增TypeReposity和TagReposity两个实体类:@Entity@Table(name="t_type")public class Type { @Id @GeneratedValue(strategy= GenerationType.IDENTITY) private Long id; @NotBlank(message
2020-07-30 08:54:23
268
原创 Spring boot博客项目实战(1)
1、建立实体类,是用的是JPA依赖,在运行的过程会根据注释的相关信息在数据库中建立与name对应的表运行后可以发现数据库中建立了t_user、t_type表。
2020-07-29 00:05:14
250
原创 在IDEA中使用git
前提:已安装git大概过程:初步提交->暂存区->本地仓库->远程仓库1、首先在VCS选择Create Git Reposity,创建完成后可以在文件夹发现相应的隐藏文件.git2、右键项目,可以看到已经出现了git选项,点击add,可能需要一段时间3、...
2020-07-28 00:21:37
170
原创 SSM项目添加权限控制(接上水文)
接上:https://blog.youkuaiyun.com/qq_43923042/article/details/1075611031.首先添加两个bean类Role和UserRole2.编写dao层接口3.编写mapper配置文件<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/my
2020-07-26 23:59:21
252
原创 SSM项目实现模糊搜索、分页、删除列表数据
一、前提准备:基本环境的配置:https://blog.youkuaiyun.com/qq_43923042/article/details/107549680主要用到两个bean类:User类和PageInfo类,User类是主要传递的信息,PageInfo则是将User进一步分页包装二、编写UserDao接口package com.zhongruan.dao;import com.zhongruan.beans.User;import org.apache.ibatis.annotations.Par
2020-07-24 15:15:50
275
原创 IDEA使用maven创建简易SSM项目
一、概述SSM为当前比较主流的web开发框架,分别代表着spring、springMVC、Mybatis。二、创建1.首先创建一个maven webapp项目的空壳2.导入依赖:分别导入spring核心包:spring-core、spring-web、spring-oxm、spring-tx、spring-jdbc、spring-webmvc、spring-aop、spring-context-support、spring-test;mybatis核心包:mybatis、mybatis-sprin
2020-07-23 23:19:17
298
原创 在IDEA中maven使用创建简易的Servlet项目
一、概述Servlet是一种服务器端的Java应用程序,具有独立于平台和协议的特性,可以生成动态的Web页面。 它担当客户请求(Web浏览器或其他HTTP客户程序)与服务器响应(HTTP服务器上的数据库或应用程序)的中间层。传统的CGI是多进程的,与之相比,Servlet是使用性能较高的程序处理方式-----多线程。二、Servlet的生命周期servlet的生命周期就是从servlet出现到销毁的全过程。主要分为以下几个阶段:创建Servlet对象,通过服务器反射机制创建Servlet对象,第一
2020-07-22 16:49:33
731
原创 在IDEA Maven中使用*.properties配置文件
在IDEA Mave中使用*.properties配置文件一、概述java中的properties文件是一种配置文件,主要用于表达配置信息,文件类型为*.properties,格式为文本文件,文件的内容是格式是 "键=值"的格式。二、在IDEA中的使用首先建立properties文件,new->Resource Bundle2、在pom.xml文件的build标签中添加资源路径<resources> <resource> <
2020-07-20 16:37:38
2911
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人