
框架
浅释的思旭
一个苦逼的程序员
展开
-
struts1手动实现登录流程
web.xml<?xml version="1.0" encoding="UTF-8"?><web-app xmlns="http://java.sun.com/xml/ns/javaee" version="2.5" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml原创 2021-09-01 16:18:14 · 234 阅读 · 0 评论 -
Springmvc之过滤器和监听器
过滤器:Filter即为过滤器,用于在servlet之外对request和response进行修改。它主要用于对用户请求进行预处理,也可以对HttpAervletResponse进行后处理。使用Filter的完整流程,Filter对用户请求进行预处理,接着将请求交给Servlet进行处理并生成响应,最后Filter再对服务器响应进行后处理。在一个web应用中,可以开发编写多个Filter,这些Filter组合起来称为Filter链。过滤器链:执行顺序为,先配置的先执行,后配置的后执行响应时顺序则相反原创 2021-03-27 21:04:15 · 378 阅读 · 0 评论 -
Spring中的aop(面向切面编程)
应用场景:有一个service,里边有增删改查等方法,可是在对其进行开发的时候,并没有对输入参数进行校验,以及对日志进行打印,所以我们想在每个方法前进行数据校验,执行完进行日志打印,此时在每个方法中都增加,即浪费经历,又使得代码更加冗余。此时就需要面向切面编程。在执行方法前执行一个方法,执行后再执行一个方法。public interface UserService { String add(); void delete(); void update(); void原创 2021-03-27 20:09:29 · 155 阅读 · 0 评论 -
spring(控制反转思想)
1,spring是一个轻量级控制反转和面向切面编程的框架(容器)。2,spring boot是一个快速开发的脚手架,基于spring的,可以快速开发单个微服务。3,springcloud是基于springboot的,是多个微服务的集合。4,spring由七大部分组成,core aop dao orm web web-mvc context组成。5,缺点:配置繁琐。6,IOC是一种思想之前的开发思路interface UserDaoUserDaoImplUesrServiceUserSe原创 2021-03-24 21:34:07 · 258 阅读 · 0 评论 -
web项目启动,加载过程
第一步:启动一个web项目的时候,web容器会去读取它的配置文件web.xml,读取listener和context-param两个结点。web.xml里可以配置什么?可以配置过滤器filter,监听器listener,Servlet容器,以及web启动后的首页。举例: 配置dispatcherServlet,DispatcherServlet实质也是一个HttpServlet。DispatcherSevlet负责将请求分发,所有的请求都有经过它来统一分发。<servlet>原创 2021-03-14 16:14:03 · 532 阅读 · 0 评论 -
Mybatis分页插件pageHelper使用
第一步:引入依赖 <dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper</artifactId> <version>5.1.2</version> </dependency>第二步:mybatis-config.xml配置文件加载 <bean id="原创 2020-12-27 17:37:23 · 386 阅读 · 0 评论 -
RPC是怎么来的?什么是RPC?
基于soa的架构,表现层和服务层是不同的工程,所以要实现一个前端的请求需要两个系统之间进行通信。web和Service是两个服务,他们之间需要进行远程调用。实现远程调用方式实现远程通信?1、Webservice:效率不高基于soap协议。项目中不推荐使用。2、使用restful形式的服务:http+json。很多项目中应用。如果服务太多,服务之间调用关系混乱。3、使用dubbo。使用rpc协议进行远程调用,直接使用socket通信。传输效率高,并且可以统计出系统之间的调用关系、调用次数。自己理原创 2020-12-06 16:32:39 · 342 阅读 · 0 评论 -
maven父子项目,聚合项目整合SSM
第一步,配置好各个.xml文件db.properties来存储数据库等信息,以key-value形式存在jdbc.driver=com.mysql.jdbc.Driverjdbc.url=jdbc:mysql://localhost:3306/remote?characterEncoding=utf-8jdbc.username=rootjdbc.password=rootsqlMapConfig.xml主要是配置数据库配置以及mapper映射的<?xml version="1.0原创 2020-12-06 14:57:11 · 266 阅读 · 1 评论 -
idea创建maven父子工程,聚合工程
1,创建e3-parent为父工程2,创建e3-common为子工程(子模块)3,创建e3-manager为聚合工程4,创建e3-manager-pojo等五个部分为e3-manager的子工程第一步:创建e3-parent为父工程pom文件<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://ww.原创 2020-12-06 13:36:32 · 359 阅读 · 0 评论 -
mybatis中resultmap和resulttype的区别。
resultType: 当使用resultType做SQL语句返回结果类型处理时,对于SQL语句查询出的字段在相应的pojo中必须有和它相同的字段对应,而resultType中的内容就是pojo在本项目中的位置。举例:此时我选择出来的Datainfo整张表就可以对应com.cloud.pojo.Datainfo,的一对一关系。 <select id="selectByUserId" parameterType="java.lang.Integer" resultType="com.cloud.原创 2020-08-20 09:22:04 · 1275 阅读 · 1 评论 -
ioc思想,以及spring中的ioc思想。
原来的三层架构servletsevicedao他们之间的依赖关系特别强,需要用ioc思想去解耦。我们拿个简单例子去看一下以前的开发场景UserDaopublic interface UserDao { void getUser();}UserDaoimplpublic class UserDaoimpl implements UserDao{ @Override public void getUser() { System.out.printl原创 2020-07-23 17:01:04 · 211 阅读 · 0 评论 -
spring boot使用jpa
第一步:添加依赖<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> </dependency> <dependency&g.原创 2020-07-15 08:37:42 · 155 阅读 · 0 评论 -
spring boot整合mybatis(增删改查)小demo(注释版),以及两种方式开启驼峰命名
增:Controller @RequestMapping("/user") public User insert(User user) { userMapper.insert(user); return user; }interface @Insert("insert into user (user_type,user_name,user_pwd,user_phone) values (#{userType},#{userName},#{us原创 2020-07-14 13:45:19 · 202 阅读 · 0 评论 -
spring boot整合mybatis,请求正常发送,sql语句执行不出来(驼峰命名)
请求正常发送,但是后台的sql语句不能正常查出东西,还不报错。开启驼峰命名。mybatis.configuration.map-underscore-to-camel-case=true原创 2020-07-14 12:36:53 · 464 阅读 · 0 评论 -
spring boot使用druid,druid的监控不能监控到sql语句解决方案
在配置中加入如下配置即可,我们在键入这个配置是没有提示的。spring.datasource.filters=stat,slf4j原创 2020-07-13 16:57:59 · 1057 阅读 · 0 评论 -
spring boot连接mysql,以及一个小demo
第一步:毫无疑问的添加依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jdbc</artifactId> </dependency> <dependency> <groupI原创 2020-07-13 09:34:53 · 785 阅读 · 0 评论 -
配置嵌入式servlet容器(JavaWeb三大组件(Servlet、Filter、Listener))
如何定制和修改Servlet容器的相关配置1,修改和server有关的配置1)配置文件的形式修改server.port=8081server.context-path=/crudserver.tomcat.uri-encoding=UTF-8//通用的Servlet容器设置server.xxx//Tomcat的设置server.tomcat.xxx2)编写一个EmbeddedServletContainerCustomizer ,2.0以后改为WebServerFactoryCu原创 2020-07-10 15:54:07 · 990 阅读 · 0 评论 -
spring boot错误处理机制
SpringBoot默认的错误处理机制当访问一个不存在的页面,或者程序抛出异常时默认效果:看看是不是非常丑的一个页面,和我们网站风格一点都不一样。所以网站的错误页面都会重新写的漂亮点。接下来学习:如何定制错误响应页面???有模板引擎的情况下将错误页面命名为 错误状态码.html 放在模板引擎文件夹里的error文件夹下发生此状态码的错误就会来到这里找对应的页面比如我们在template文件夹下创建error/404.html当浏览器请求是404错误,就会使用我们自己创建的404.htm原创 2020-07-10 15:37:30 · 287 阅读 · 0 评论 -
spring boot的一个小demo 员工的增删改查
增第一步:到员工添加页面 @GetMapping("/emp") public String add(Model model) { Collection<Department> departments = departmentDao.getDepartments(); model.addAttribute("depts", departments); return "emp/add"; }第二步:前台数据发往后台,for原创 2020-07-10 09:21:12 · 232 阅读 · 0 评论 -
编写springboot页面时。怎么实时加载页面,而不用重新启动。
第一步,在配置文件中禁用掉thymleaf缓存spring.thymeleaf.cache=false第二步,编写完页面(idea)按住ctrl+F9即可。第三步,刷新页面,已经加载重新编写内容。当用户提交post请求之后,刷新页面就会造成数据的再一次提交,也就是常说的重复提交。利用重定向可以有效防止重复提交数据。 @PostMapping("/user/login") public String userlogin(@RequestParam("username") String u原创 2020-07-10 09:20:54 · 657 阅读 · 0 评论 -
SpringBoot中的模板引擎
模板引擎思想:模板引擎常见的模板引擎有JSP、Velocity、Freemarker、ThymeleafSpringBoot推荐使用Thymeleaf;引入thymeleaf <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</arti原创 2020-07-06 16:28:13 · 886 阅读 · 0 评论 -
springboot web开发之静态资源(依赖资源,自己资源,图标)引入与访问
SpringBoot Web开发创建SpringBoot应用,选中我们需要的模块SpringBoot已经默认将这些场景配置好了,只需要在配置文件中指定少量配置就可以运行起来自己编写业务代码web自动配置规则WebMvcAutoConfiguration WebMvcPropertiesViewResolver自动配置静态资源自动映射Formatter与Converter自动配置HttpMessageConverter自动配置静态首页favicon 错误处理SpringBoot对原创 2020-07-04 21:02:21 · 558 阅读 · 0 评论 -
SpringBoot日志,输出级别,日志切换,以及SLF4J用不同的实现框架
引言常用的日志框架日志门面 (日志的抽象层)日志实现JCL(Jakarta Commons Logging) jboss-loggi SLF4j(Simple Logging Facade for Java)JUL(java.util.logging) Log4j Log4j2 Logback左边选一个门面(抽象层)、右边来选一个实现;JCL(Jakarta Commons Logging)2014年停更。jboss-loggi 过于简单。Log4j2 a原创 2020-07-04 20:10:45 · 1292 阅读 · 0 评论 -
@Conditional注解
作用:必须是@Conditional指定的条件成立,才给容器中添加组件,配置配里面的所有内容才生效;查看那些自动配置类生效了自动配置类必须在一定的条件下才能生效;我们怎么知道哪些自动配置类生效了;我们可以通过配置文件启用 debug=true属性;来让控制台打印**自动配置报告,**这样我们就可以很方便的知道哪些自动配置类生效;Positive matches :(自动配置类启用的)Negative matches:(没有启动,没有匹配成功的自动配置类)...原创 2020-07-04 15:44:33 · 359 阅读 · 0 评论 -
对SpringBoot的自动配置原理@EnableAutoConfiguration(2.3.1版本)进行分析(小白理解的,欢迎大佬留言指出错误)
前言:什么是组件???百度百科给的答案:组件(Component)是对数据和方法的简单封装。 C++ Builder中,一个组件就是一个从TComponent派生出来的特定对象。组件可以有自己的属性和方法。属性是组件数据的简单访问者。方法则是组件的一些简单而可见的功能。使用组件可以实现拖放式编程、快速的属性处理以及真正的面向对象的设计。一些大佬给出的答案:1.)组件是一种实现现预订功能的模块。2.)组件是对数据和方法的简单封装,简而言之,组件就是一种特殊的对象。3.)以上两者都有,组件是从本质原创 2020-07-04 15:28:32 · 1073 阅读 · 0 评论 -
SpringBoot的配置文件加载位置,以及加载的优先级
通过目录演示一下加载的优先级,优先级越高的会覆盖低的优先级。配置文件加载位置springboot 启动会扫描以下位置的application.properties或者application.yml文件作为Spring boot的默认配置文件file: ./config/ file: ./ classpath: /config/ classpath: / -->first load ↑(最开始加载,但是会被高优先级覆盖)原创 2020-07-04 09:05:16 · 529 阅读 · 0 评论 -
Profile是Spring对不同环境提供不同配置功能的支持,可以通过激活、指定参数等方式快速切换环境
激活application-dev.properties配置环境。程序启动时会默认加载application.properties,但是可以在主配置文件中指定激活哪个配置文件。我还特意试了试写下在主配置文件之后写激活语句,依然使用的是激活版本。yml支持多文档块方式。如下两个图。激活指定profile的三种方式1,在配置文件中指定 spring.profiles.active=dev(如上)2,项目打包后在命令行启动:如下图java -jar xxx.jar --spring.profi原创 2020-07-03 21:07:38 · 260 阅读 · 0 评论 -
SpringBoot中的配置文件占位符
1,随机的${random.value}${random.int}${random.long}${random.int(10)}${random.int[1024,65536]}2,可以引用在配置文件中配置的其他属性的值,如果使用一个没有在配置文件中的属性,则会原样输出。3,可以用:冒号来指定默认值。...原创 2020-07-03 20:17:07 · 660 阅读 · 0 评论 -
SpringBoot通过配置类来代替Spring中的配置文件给容器添加组件
SpringBoot推荐给容器中添加组件的方式;推荐使用全注解的方式配置类@Configuration —equals—> Spring配置文件配置类package com.yangzhenxu.firstspringboot.config;import com.yangzhenxu.firstspringboot.bean.Dog;import org.springframework.context.annotation.Bean;import org.springframework原创 2020-07-03 15:31:27 · 669 阅读 · 0 评论 -
@ImportResource()注解的使用
@ImportResource注解用于导入Spring的配置文件,让配置文件里面的内容生效;(就是以前写的springmvc.xml、applicationContext.xml)Spring Boot里面没有Spring的配置文件,我们自己编写的配置文件,也不能自动识别;想让Spring的配置文件生效,加载进来;@ImportResource标注在一个配置类上。注意!这个注解是放在主入口函数的类上,而不是测试类上不使用@ImportResource()注解,程序根本不能对我们spring的配置文件原创 2020-07-03 15:13:22 · 31387 阅读 · 2 评论 -
SpringBoot注解之@PropertySource与@PropertySources
一不注意就自动补全出错,还找不到为啥错。本来我想用@PropertySource的但是给我贱手,没看清就补全成@PropertySources,然后就蒙蔽了,所以就看一下有什么区别吧。都可以加载多个配置文件,但是@PropertySources可以添加约束。@PropertySource(value = {"classpath:person.properties","classpath:dog.properties"})@PropertySources({@PropertySource(valu原创 2020-07-03 14:43:16 · 1546 阅读 · 0 评论 -
SpringBoot的配置文件的格式以及语法(appliacton.yaml)
application.ymlperson: name: yangzhenxu age: 25 male: true date: 1996/06/22 map: {k1: v1,k2: v2} list: - 1 - 2 dog: name: zhangxue age: 27Person类package com.yangzhenxu.firstspringboot.bean;import org.springframework.boot原创 2020-07-03 13:31:47 · 142 阅读 · 0 评论