Spring MVC
Spring MVC
程序员·小李
不知道要干什么的时候,停一停,想一想;知道想要什么的时候,努努力,拼一拼。
展开
-
会话机制与单点登录SSO
http协议属于无状态协议HTTP协议是典型的无状态协议,通信协议本身不维护状态。在服务端看来,所有的请求都是平等的,没有任何区别。为了区分不同的用户(浏览器),我们就采用会话机制来维护用户信息。会话机制采用Cookie来维护一个ID,jsessionID就是维护这个id的媒介,服务器与浏览器通过jsessionid维护用户状态信息,jsession与用户一一对应...原创 2019-12-11 21:58:41 · 363 阅读 · 0 评论 -
Spring MVC 让.html静态文件得到处理的方法
你的web.xml文件在配置springmvc的时候可能是一个“/”拦截了所有请求,导致无法处理.html文件在springmvc-config.xml文件中添加以下两句: <mvc:default-servlet-handler/> <mvc:annotation-driven />问题解决! ...原创 2018-11-13 15:59:53 · 173 阅读 · 0 评论 -
Spring Boot实战清华版 配置管理
配置文件读取的优先层级[/config/application.properties] >[/application.properties] >[classpath:config/application.properties] >[classpath:application.properties]即:优先读取根目录,再读classpath,其中,优先读取config目录。修改applicat...原创 2021-06-29 22:33:11 · 122 阅读 · 0 评论 -
Spring Boot实战清华版 创建项目
Create New Project创建基于Spring Initilizr的项目。填写项目信息group:组,一般用于区分项目来源artifact: 组内唯一确定项目type: 项目类型Language: 编程语言packaging: 打包方式Java Version: java版本version: 项目版本name: 项目名称description: 描述package: 包选择依赖此处添...原创 2020-09-10 14:56:58 · 140 阅读 · 0 评论 -
Spring Boot实战清华版 Web应用开发
静态页面开发在src/main/resources/static下创建index.html这是一个静态页面。访问greeting访问index.html基于Thymeleaf的web应用添加依赖:返回的名称就是视图模板的名称:创建模板src/main/resources/templates:使用${name}读取注入model的参数效果:Thymeleaf知识声明...原创 2020-09-10 17:50:40 · 169 阅读 · 0 评论 -
Spring Boot实战清华版 Spring生态
Spring的各个模块Test:测试Core Container:核心容器(Beans Core Context SpEL)AOP:面向切面编程Aspects:切面Instrumentation:监测Messaging:消息Data Access / Integration: 数据访问与集成(JDBC ORM OXM JMS Transactions)Web:web模块(Websocket Servlet Web Portlet)...原创 2020-09-10 12:06:54 · 222 阅读 · 0 评论 -
Spring Boot实战清华版 Servlet, Filter, Listener
Servlet请求处理的鼻祖,不过现在基本废弃。Filter对一切请求均有效,可以实现敏感词过滤,请求响应的修改等等。Listener对事件的监听,以ServletContentListener,SessionListener为主。原创 2022-07-17 12:53:39 · 121 阅读 · 0 评论 -
Spring Boot实战清华版 JPA直连Mysql
1. 新增依赖新增jpa和mysql依赖2. 新增数据源配置3. 新增实体类@Entity表示是实体类@Table进行数据库表对应@Id表示主键4. 新增Repository新增接口,继承JpaRepository接口,指定实体类型和主键类型5. 使用注入即可使用。6.效果...原创 2021-06-30 22:58:26 · 111 阅读 · 0 评论 -
Spring Boot实战清华版 相关注解
使用@interface定义一个注解:使用注解标记类:给自定义注解(n.)进行注解(v.)的注解(n.)。1. @Retention:指定注解的存在时间。RetentionPolocy.SOURCE 源码级别RetentionPolocy.CLASS 编译级别RetentionPolocy.RUNTIME 运行级别2. @Documented: 被注解的内容提取成文档3. @Traget: 注解的适用范围ElementType.FIELD 字段ElementType.METHOD 方法ElementType原创 2020-09-10 16:30:05 · 245 阅读 · 1 评论 -
Spring Boot实战清华版 使用拦截器
拦截器是基于aop实现的,仅适用于web请求。1. 新增拦截器实现HandlerInterceptor接口,覆写相关的方法即可,2. 注册拦截器配置类实现WebMvcConfigurer,覆写addInterceptors方法即可3. 效果...原创 2021-06-30 22:14:30 · 132 阅读 · 0 评论 -
JavaEE-SSM:005 Mybatis的配置文件解析(2)
setting配置不常用,给出配置说明: 本文给出Setting配置的全量代码: <settings> <setting name="cacheEnabled" value="true"/> <setting name="lazyLoadingEnabled" value="true"/>原创 2018-11-19 11:27:56 · 204 阅读 · 0 评论 -
JavaEE-SSM:004 Mybatis的配置文件解析(1)
1.配置项:不可颠倒顺序 2.Properties配置 好处就是:一处配置,多处使用。当然不嫌麻烦,直接配置,不使用property也是可以的。在Properties下配置相关的配置Property:name是引用的时候的名称,value是具体值使用${propertyName}使用前面配置过的配置信息 3.使用Property文件进行配置 ...原创 2018-11-19 11:14:51 · 201 阅读 · 0 评论 -
JavaEE-SSM:024 Bean作用域及SPEL
Bean作用域Bean作用域控制着Bean的生命周期,什么时候创建,Bean是否共享等等。配置作用域:给Bean的属性注入值:使用其他Bean注入新的Bean:使用类的静态方法:使用操作符:使用三元表达式和默认值:条件化装配(不符合条件就不装配)条件化装配为了防止某些条件不满足,导致装配失...原创 2019-03-15 11:14:26 · 200 阅读 · 0 评论 -
JavaEE-SSM:013 Mybatis映射器(4)
SQL节点:一次定义,多次调用 先定义SQL节点:id用于参考<sql id="preSql"> id,role_name,note</sql> 使用SQL:通过include节点并指定refid,refid是参考的sql节点的id<select id="getRole" parameterType="long" result...原创 2018-11-20 09:07:53 · 176 阅读 · 0 评论 -
JavaEE-SSM:023 Spring 加载属性(properties)文件
配置文件就是一些properties文件:jdbc.database.driver=com.mysql.jdbc.Driverjdba.database.url=jdbc:mysql://localhost:3306/chapter10jdbc.database.username=rootjdbc.database.password=123456使用配置文件方便更改而不是硬编码。...原创 2018-11-30 10:37:00 · 313 阅读 · 0 评论 -
JavaEE-SSM:001认识DI、AOP、Mybatis、SpringMVC、Redis
1.DI(依赖注入)以往的程序大多耦合性太大:在B的构造函数中构建了一个A的对象,这样B就对A产生了依赖。public class A{}public class B{ A a; public B() { a = new A(); }}我们可以对其改造:改造一:通过构造函数注入public class A{...原创 2018-11-19 09:32:24 · 248 阅读 · 0 评论 -
JavaEE-SSM:007 Mybatis的配置文件解析(4)
1.系统级别的typeHandler 2.自定义typeHandler 想要自己实现typeHandler,需要实现TypeHandler<T>接口,T就是你要转换的Java类型setParameter(PreparedStatement ps, int i, String parameter, jdbcType jdbcType)用于设置sql参数ge...原创 2018-11-19 12:00:18 · 172 阅读 · 0 评论 -
JavaEE-SSM:025 面向切面编程
白话切面编程:切面要做的事就是,监听某个事件,对某个事件发生前,发生后,成功结束后,发生异常后,结束后进行你想要的操作,并且,不需要被监听的事件显式调用这些操作,即,这些操作都是自动执行的,就好像被监听的事件都不知道一样。样例:对于数据库操作涉及到事务等概念的时候,需要一大堆的样板代码:利用aop,我们可以将连接数据库,释放数据库连接等操作去掉,同时,没有异常发生的话,自...原创 2019-03-15 11:56:43 · 278 阅读 · 0 评论 -
JavaEE-SSM:019 Spring IOC控制反转
使用IOC思想被动创建对象: 不需要主动去new一个对象,而是由第三方容器去创建Source的对象自动注入到JuiceMaker2类每个Java的class都可以被称为是一个Bean:<bean id="source" class="com.ssm.xxx.Source"> <property name="fruit" value="橙汁"/&g原创 2018-11-20 15:22:18 · 201 阅读 · 0 评论 -
JavaEE-Redis:001 Redis简介
Redis的优势传统的java web应用使用数据库存储数据,对于小访问和小并发情形是可以满足的。但是高并发情况下需要快速读写数据,这就造成了数据库的压力。Redis有快速读写数据的功能,每秒达十几万次读写操作,可谓效率很高。支持集群、分布式、主从同步。理论上可以无限扩展。对事务有一定的支持,保证数据的安全及一致性。Redis应用场景Redis主要有两个应用场...原创 2019-08-08 16:07:45 · 173 阅读 · 0 评论 -
JavaEE-SSM:015 Mybatis映射器(6)
鉴别器的使用 需求:男性体检表和女性体检表有不同的检查项,我们需要根据员工的性别,对应不同类型的体检表。 根据员工id获取男职工体检表:根据员工id获取女职工体检表: 员工数据表:id为员工号字段sex为性别字段POJO:public class Employee{ private Long id; private Stri...原创 2018-11-20 10:50:03 · 232 阅读 · 0 评论 -
JavaEE-SSM:002 Mybatis的基础配置
Mybatis包下载:https://github.com/mybatis/mybatis-3/releases1.Mybatis核心组件SqlSessionFactoryBuilder(Sql连接池构建器)用于产生SqlSessionFactory(Sql连接池)SqlSessionFactory用于产生SqlSession(单个Sql会话)SqlSession通过M...原创 2018-11-19 10:16:49 · 395 阅读 · 0 评论 -
JavaEE-SSM:026 spring数据库
1.配置数据库连接最简单的无数据库连接池xml配置使用org.springframework.jdbc.datasource.SimpleDriverDataSource使用DBCP数据库连接池(优选)使用org.apache.commons.dbcp.BasicDatasourceJNDI数据库连接2. 配置SqlSessionFact...原创 2019-03-15 14:48:41 · 238 阅读 · 0 评论 -
JavaEE-SSM:018 动态SQL
Mybatis动态SQL元素一览 if判断元素 常用于判断,与test搭配使用当roleName不是null并且不是空字符的话,动态追加sql语句:select role_no, role_name, note from t_role where 1=1 and role_name like concat('%',#{roleName},'%')如果ro...原创 2018-11-20 14:42:52 · 190 阅读 · 0 评论 -
JavaEE-SSM:008 Mybatis的配置文件解析(5)
1.系统级枚举typeHandler--EnumOridinalTypeHandler(将枚举转换成数字存储)数据库存储为数字//创建一个枚举public enum SexEnum{ MALE(1,"男"), FEMALE(0,"女"); private int id; private String name; SexEn...原创 2018-11-19 14:42:25 · 179 阅读 · 0 评论 -
JavaEE-SSM:011 Mybatis映射器(2)
Select配置语句常用配置 常用的配置已经圈出:id:配合Mapper映射接口使用,一般和接口函数名称一致parameterType:输入参数的类型resultType:输出参数的类型ResultMap:输出映射集flushCache:清空缓存useCache:使用缓存 一条简单的示例 Mapper:public Integer coun...原创 2018-11-20 08:43:02 · 186 阅读 · 0 评论 -
JavaEE-SSM:016 Mybatis映射器(7)
延迟加载: 修改配置信息:<settings> <setting name="lazyLoadingEnabled" value="true"/> <setting name="aggressiveLazyLoading" value="false"/></settings>在需要加原创 2018-11-20 11:32:55 · 224 阅读 · 0 评论 -
JavaEE-SSM:012 Mybatis映射器(3)
1.insert节点配置信息一览 id用于Mapper接口函数的对应parameterType指的是SQL语句的输入参数useGeneratedKeys自动产生主键keyProperty主键字段KeyColumn主键列名 2.一条简单的insert语句 3.使用主键回填的方式产生主键并回填到对象中 4.update及delet...原创 2018-11-20 08:55:39 · 188 阅读 · 0 评论 -
JavaEE-Redis:002 Redis常见数据结构
字符串键对应的值是字符串类型。常用的字符串操作命令:set key value用于写入get key用于读取getset key value用于设置并返回旧值append key value追加值到末尾Spring下操作Redis:1.设置值2.获取值3.getSet4.append5.获取长度...原创 2019-08-09 09:53:11 · 167 阅读 · 0 评论 -
JavaEE-SSM:009 Mybatis的配置文件解析(6)
文件类型转换器(不常用) 假设数据库有blob格式的字段存储需求:对应着POJO的byte数组:ResultMap中有对应的typeHandler配置: 当然,我们可以在POJO中使用InputStream替代byte数组,但是终究不是最好的方式,一般不会往数据库里存储大数据和文件,有更好的选择--文件服务器,了解下!...原创 2018-11-19 14:49:09 · 219 阅读 · 0 评论 -
JavaEE-SSM:020 Spring 依赖注入的三种方式
一、构造器注入(适合构造函数参数较少的情况) Role类含有一个构造函数public Role(String roleName, String note){ this.roleName = roleName; this.note = note;} 我们可以通过使用<constructor-arg>构造函数注入:<bean id=...原创 2018-11-20 15:40:03 · 462 阅读 · 0 评论 -
JavaEE-SSM:014 Mybatis映射器(5)
ResultMap子元素一览 <constructor>节点配置 假如,我们返回类型的POJO不包含无参构造函数,只有一个下面的有参构造:public class RoleBean{ public RoleBean(Integer id, String roleName) { this.id = id; ...原创 2018-11-20 10:06:26 · 220 阅读 · 0 评论 -
JavaEE-SSM:027 spring数据库事务
1. 配置数据源事务管理器使用xml配置数据源事务管理器(优选)org.springframework.jdbc.datasource.DataSourceTransactionManager使用Java配置数据源事务管理器2. @Transactional配置项3.声明式事务流程4. 使用方法propagati...原创 2019-03-15 16:10:43 · 219 阅读 · 0 评论 -
JavaEE-SSM:003 Mybatis的映射器及各组件生命周期
1.映射器是什么?它包含一个xml配置文件和一个对应的Mapper接口xml可以提供动态SQL,配置Sql参数类型,返回值类型,缓存,刷新,提供映射规则等Mapper是对xml文件的映射,实际上配置好xml文件后就不再操作xml文件,直接操作Mapper接口操作数据库即可。2.POJO对象数据库语句所需要的参数或者数据库语句执行的结果都会映射到一个实体类上去,这是典型的O...原创 2018-11-19 10:49:41 · 225 阅读 · 0 评论 -
JavaEE-SSM:021 Spring 使用XML装配Bean
1.添加XSD头 <?xml version='1.0' encoding='UTF-8' ?><beans xmlns = "http://www.springframework.org/schema/beans" xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance" xsi:...原创 2018-11-21 08:38:46 · 186 阅读 · 0 评论 -
JavaEE-SSM:006 Mybatis的配置文件解析(3)
别名主要用于Mapper的xml文件指定输入类型或者返回结果类型的名称的时候,替代全限定名。(前文已经提及如何使用别名) 1.系统级别的typeAlias(类型别名) 2.自定义别名 这里的alias属性值得是别名的名称,type是类的全限定名。 也可以采用包扫描的方式:包扫描的方式,别名直接是类名首字母小写后的名称,如:Role--role,User...原创 2018-11-19 11:38:56 · 170 阅读 · 0 评论 -
JavaEE-SSM:017 Mybatis映射器(8)
一级缓存:默认情况下,一级缓存是自动开启的,在SqlSession层面上,同样的sql语句再次执行的时候,SqlSession会做检测,如果查询到已经有缓存,并且缓存有效,将不再请求数据库。二级缓存:二级缓存默认不开启,它是在SqlSessionFactory级别的,也就类似与数据库连接池中,需要POJO实现Serializable接口进行序列化和反序列化。需要在Mapper.xm...原创 2018-11-20 14:04:18 · 214 阅读 · 0 评论 -
JavaEE-SSM:028 springMVC框架简介
1. springMVC处理流程DispatcherServlet接收到请求后,根据HandlerMapping获取路由映射,找到HandlerAdapter和拦截器,与数据库交互获取数据,交由ViewResolver进行渲染得到View视图后显示给用户。2. 对web.xml进行配置3.配置DispatcherServlet4.Controller方...原创 2019-03-15 16:34:45 · 191 阅读 · 0 评论 -
JavaEE-Redis:003 Redis常用技术
事务Redis事务可以保证数据提交的原子性和隔离性。在Spring中需要使用SessionCallBack保证数据提交的原子性:Redis事务的特点:当命令正确而数据类型不匹配的时候,本条指令报错,但不影响事务内的其他命令。当命令发生错误时,本事务内的所以命令全部回滚。watch对事务管理的作用:我们在开启事务前,使用watch监视...原创 2019-08-09 11:00:30 · 220 阅读 · 0 评论 -
JavaEE-SSM:010 Mybatis映射器(1)
映射器综述 映射器是建立Mapper接口函数和Sql语句之间联系的关键部件,它可以指定POJO类型,也可以指定JDBC类型,同时,也可以指定TypeHandler对其转换。可以映射Mapper接口函数参数:parameterType,也可映射结果参数ResultType或者ResultMap常见的映射器XML文件配置项如下: select:select查询语句inser...原创 2018-11-19 15:01:14 · 194 阅读 · 0 评论