首页
关于
友情链接
Search
1
Mybatis-动态SQL
93 阅读
2
Mybatis-XML映射文件
80 阅读
3
springboot配置文件yml
80 阅读
4
Mybatis-基础操作
79 阅读
5
拦截器(Interceptor)
74 阅读
学习记录
MySql
Java
vue
Mybatis
默认分类
代码记录
项目搭建教程
go项目
源码分享
经验分享
登录
Search
标签搜索
java
mysql
Mybatis
spring boot
编程
lombok
go
MinDoc
JAVAweb
Typecho
累计撰写
16
篇文章
累计收到
1
条评论
首页
栏目
学习记录
MySql
Java
vue
Mybatis
默认分类
代码记录
项目搭建教程
go项目
源码分享
经验分享
页面
关于
友情链接
搜索到
16
篇与
的结果
2023-06-05
过滤器Filter
Filter快速入门1. 定义Filter:定义一个类,实现 Filter 接口,并重写其所有方法。 2. 配置Filter:Filter类上加 @WebFilter 注解,配置拦截资源的路径。引导类上加 @ServletComponentScan 开启Servlet组件支持 在易语言里面使用的时候有个注册前全局接口与注册后全局接口@WebFilter(urlPatterns = "/*") public class DemoFilter implements Filter { @Override //初始化方法, 只调用一次 public void init(FilterConfig filterConfig) throws ServletException { System.out.println("init 初始化方法执行了"); } @Override //拦截到请求之后调用, 调用多次 public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { System.out.println("Demo 拦截到了请求...放行前逻辑"); //放行 chain.doFilter(request,response); System.out.println("Demo 拦截到了请求...放行后逻辑"); } @Override //销毁方法, 只调用一次 public void destroy() { System.out.println("destroy 销毁方法执行了"); } }@ServletComponentScan @SpringBootApplication public class TliasApplication { public static void main(String[] args) { SpringApplication.run(TliasApplication.class, args); } }Filter执行流程请求 --> 放行前逻辑 --> 放行 --> 资源 --> 放行后逻辑 Filter拦截路径Filter 可以根据需求,配置不同的拦截资源路径: 过滤器链介绍:一个web应用中,可以配置多个过滤器,这多个过滤器就形成了一个过滤器链
2023年06月05日
60 阅读
0 评论
0 点赞
2023-05-30
springboot配置文件yml
配置格式SpringBoot提供了多种属性配置方式1,application.propertiesserver.port=8080 server.address=127.0.0.12,application.ymlserver: port: 8080 address: 127.0.0.13,application.yamlserver: port: 8080 address: 127.0.0.1yml基本语法 大小写敏感 数值前边必须有空格,作为分隔符 使用缩进表示层级关系,缩进时,不允许使用Tab键,只能用空格(idea中会自动将Tab转换为空格) 缩进的空格数目不重要,只要相同层级的元素左侧对齐即可 符号# 表示注释,从这个字符一直到行尾,都会被解析器忽略yml数据格式1对象/Map集合user: name: zhangsan age: 18 password: 1234562数组/List/Set集合hobby: - java - game - sport配置文件读取配置文件内容#阿里云OSS aliyun: oss: endpoint: https://o accessKeyId: LTAI4GC accessKeySecret: yBshY bucketName: we1使用注解 @Value是spring boot的java代码@SpringBootTest class TliasApplicationTests { @Value("aliyun.oss.endpoint") String a; @Test void contextLoads() { System.out.println("这是a:"+a); } }aliyun.oss.endpoint 为yml文件中的路径2自动获取绑定@Data @Component @ConfigurationProperties(prefix = "aliyun.oss") public class AliOSSProperties { private String endpoint; private String accessKeyId; private String accessKeySecret; private String bucketName; }1.类中的属性名要与配置中的key一致 类属性endpoint与配置文件中的bucketName一致 2.将这个实体类交给ioc容器管理 加入注解@Component 3.指定前缀 @ConfigurationProperties(prefix = "前缀") bucketName的完整路径为aliyun.oss.bucketName
2023年05月30日
80 阅读
0 评论
0 点赞
2023-05-30
springboot文件上传
代码package com.tlias.controller; import com.tlias.pojo.Result; import lombok.extern.slf4j.Slf4j; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.multipart.MultipartFile; import java.io.File; import java.util.UUID; @Slf4j @RestController public class UploadController { @PostMapping("/upload") public Result upload(String username, Integer age , MultipartFile image)throws Exception{ log.info("文件上传: {}, {}, {}", username, age, image); //获取原始文件名 - 1.jpg 123.0.0.jpg String originalFilename = image.getOriginalFilename(); //构造唯一的文件名 (不能重复) - uuid(通用唯一识别码) de49685b-61c0-4b11-80fa-c71e95924018 int index = originalFilename.lastIndexOf("."); String extname = originalFilename.substring(index); String newFileName = UUID.randomUUID().toString() + extname; log.info("新的文件名: {}", newFileName); //将文件存储在服务器的磁盘目录中 E:\images image.transferTo(new File("E:\\images\\"+newFileName)); return Result.success(); } } MultipartFile相关方法String getOriginalFilename(); //获取原始文件名 void transferTo(File dest); //将接收的文件转存到磁盘文件中 long getSize(); //获取文件的大小,单位:字节 byte[] getBytes(); //获取文件内容的字节数组 InputStream getInputStream(); //获取接收到的文件内容的输入流解决文件上传大小限制#单个文件最大限制 spring.servlet.multipart.max-file-size=20MB #单个请求最大限制 spring.servlet.multipart.max-request-size=200MB
2023年05月30日
50 阅读
0 评论
0 点赞
2023-05-18
Linux下使用宝塔搭建MinDoc
官方搭建教程地址 https://doc.gsw945.com/docs/mindoc-docs/mindoc-linux.md#69hg8r教程开始下载官方编译好的安装包 推荐本教程使用2.0版本 2.1版本搭建的时候有点小问题 https://github.com/lifei6671/mindoc/releases 开放端口 在宝塔面板 - 安全 - 添加8181端口 创建运行目录 这个目录可以任选 推荐把他和宝塔的网站文件目录放在一块 方便管理 上传安装包并解压 刚才创建的目录 /www/wwwroot/mindo配置环境变量 官方教程提到了 如果你的服务器上没有安装golang程序请手动设置一个环境变量如下:键名为 ZONEINFO,值为MinDoc根目录下的/lib/time/zoneinfo.zip 绝对路径。 但在我安装的时候 不设置环境变量也可以的 不过 还是设置一下吧来自百度的配置教程 https://jingyan.baidu.com/article/ea24bc399a73bcda62b33104.html 打开文件 /etc/profile 最后一行加入 export PATH=$PATH:/www/wwwroot/mindoc/lib/time/zoneinfo.zip 这里的路径 请按照自己的实际情况来填写保存退出就OK了配置数据库信息 安装包根目录下 conf/app.conf如果是sqlite数据库 你可以不用更改任何信息 有需要的话 修改一下信息即可)是MySQL的话按照下面的信息修改即可数据库字符集请选择utf8mb4db_adapter="${MINDOC_DB_ADAPTER||mysql}" db_host="${MINDOC_DB_HOST||主机地址}" db_port="${MINDOC_DB_PORT||数据库端口}" db_database="${MINDOC_DB_DATABASE||数据库名}" db_username="${MINDOC_DB_USERNAME||数据库用户名}" db_password="${MINDOC_DB_PASSWORD||数据库密码}"初始化数据库根目录下打开终端复制一下可执行文件的文件名(有用处)执行命令./mindoc_linux_amd64 installchmod +x mindoc_linux_amd64这里的mindoc_linux_amd64 就是刚才复制的文件名启动项目执行命令./mindoc_linux_amd64看到这个结果 就表示成功了浏览器打开 ip:8181进阶部分-使用宝塔go项目管理运行新建项目宝塔面板 网站 Go项目 添加Go项目配置信息这里的操作 都是基于上面的教程完成的可执行文件 就是安装目录下的 mindoc_linux_amd64 项目名称 这个可以自定义项目端口 必须8181 这个端口 如果绑定域名 可以不用放行执行命令 一般会自定生成 如果没有或错误 手动填写 绝对路径安装目录/可执行文件名 比如 /www/wwwroot/mindo/mindoc_linux_amd64运行用户 默认www就可以了开机启动 推荐开启绑定域名 可以不绑定 但是要开放端口 绑定以后开80端口就够了最后 提交就完事了打开网站看看 看一下项目日志跟上面一样
2023年05月18日
67 阅读
0 评论
0 点赞
2023-05-18
Mybatis-动态SQL
随着用户的输入或外部条件的变化而变化的SQL语句,我们称为 动态SQL。举例<mapper namespace="com.itheima.mapper.EmpMapper"> <sql id="commonSelect"> select id, username, password, name, gender, image, job, entrydate, dept_id, create_time, update_time from emp </sql> <!-- 动态更新员工--> <update id="update2"> update emp <set> <if test="username != null">username = #{username},</if> <if test="name != null">name = #{name},</if> <if test="gender != null">gender = #{gender},</if> <if test="image != null">image = #{image},</if> <if test="job != null">job = #{job},</if> <if test="entrydate != null">entrydate = #{entrydate},</if> <if test="deptId != null">dept_id = #{deptId},</if> <if test="updateTime != null">update_time = #{updateTime}</if> </set> where id = #{id} </update> <!--resultType: 单条记录封装的类型--> <select id="list" resultType="com.itheima.pojo.Emp"> <include refid="commonSelect"/> <where> <if test="name != null"> name like concat('%', #{name}, '%') </if> <if test="gender != null"> and gender = #{gender} </if> <if test="begin != null and end != null"> and entrydate between #{begin} and #{end} </if> </where> order by update_time desc </select> <!--批量删除员工 (18,19,20)--> <!-- collection: 遍历的集合 item: 遍历出来的元素 separator: 分隔符 open: 遍历开始前拼接的SQL片段 close: 遍历结束后拼接的SQL片段 --> <delete id="deleteByIds"> delete from emp where id in <foreach collection="ids" item="id" separator="," open="(" close=")"> #{id} </foreach> </delete> </mapper>代码解读if标签用于判断条件是否成立,如果条件为true,则拼接SQL。test属性为判断条件形式:… where标签 where 元素只会在子元素有内容的情况下才插入where子句,而且会自动去除子句的开头的AND 或OR set标签 动态地在行首插入 SET 关键字,并会删掉额外的逗号。(用在update语句中)foreach标签sql代码 delete from emp where id in (17,18,19);collection: 遍历的集合 item: 遍历出来的元素 separator: 分隔符open: 遍历开始前拼接的SQL片段 close: 遍历结束后拼接的SQL片段 SQL标签 实现sql片段的复用 属性id 可以理解为该片段的名字 include标签 引用SQL片段 属性refid的值为SQL标签的id
2023年05月18日
93 阅读
0 评论
0 点赞
1
2
3
4