Spring学习之路
Lcreator
这个作者很懒,什么都没留下…
展开
-
24SSM框架整合
SSM框架整合1.1 原始方式整合1.准备工作2.创建Maven工程3.导入Maven坐标参考:素材/配置文件/pom.xml文件4.编写实体类public class Account { private int id; private String name; private double money; //省略getter和setter方法}5.编写Mapper接口public interface AccountMapper { //保存原创 2020-09-02 16:28:18 · 131 阅读 · 0 评论 -
23Mybatis的注解开发
2.Mybatis的注解开发2.1 MyBatis的常用注解这几年来注解开发越来越流行,Mybatis也可以使用注解开发方式,这样我们就可以减少编写Mapper映射文件了。我们先围绕一些基本的CRUD来学习,再学习复杂映射多表操作。@Insert:实现新增@Update:实现更新@Delete:实现删除@Select:实现查询@Result:实现结果集封装@Results:可以与@Result 一起使用,封装多个结果集@One:实现一对一结果集封装@Many:实现一对多结果集封装2.原创 2020-08-30 18:07:49 · 92 阅读 · 0 评论 -
22Mybatis多表查询(xml开发)
1.Mybatis多表查询1.1 一对一查询1.1.1 一对一查询的模型MapperScannerConfigurer用户表和订单表的关系为,一个用户有多个订单,一个订单只从属于一个用户一对一查询的需求:查询一个订单,与此同时查询出该订单所属的用户1.1.2一对一查询的语句对应的sql语句:select * from orders o,user u where o.uid=u.id;查询的结果如下:1.1.3 创建Order和User实体public class Order {原创 2020-08-30 17:57:46 · 421 阅读 · 0 评论 -
21MyBatis核心配置文件深入--部分常用标签
3. MyBatis核心配置文件深入3.1typeHandlers标签无论是 MyBatis 在预处理语句(PreparedStatement)中设置一个参数时,还是从结果集中取出一个值时, 都会用类型处理器将获取的值以合适的方式转换成 Java 类型。下表描述了一些默认的类型处理器(截取部分)。你可以重写类型处理器或创建你自己的类型处理器来处理不支持的或非标准的类型。具体做法为:实现 org.apache.ibatis.type.TypeHandler 接口, 或继承一个很便利的类 org.apa原创 2020-08-30 17:51:38 · 122 阅读 · 0 评论 -
19MyBatis映射文件深入--动态sql
2.MyBatis映射文件深入2.1 动态sql语句2.1.1动态sql语句概述Mybatis 的映射文件中,前面我们的 SQL 都是比较简单的,有些时候业务逻辑复杂时,我们的 SQL是动态变化的,此时在前面的学习中我们的 SQL 就不能满足要求了。参考的官方文档,描述如下:2.1.2动态 SQL 之<if>我们根据实体类的不同取值,使用不同的 SQL语句来进行查询。比如在 id如果不为空时可以根据id查询,如果username 不同空时还要加入用户名作为条件。这种情况在我们的多原创 2020-08-30 17:48:28 · 114 阅读 · 0 评论 -
18MyBatis的Dao层实现
1.Mybatis的Dao层实现1.1 传统开发方式1.1.1编写UserDao接口public interface UserDao { List<User> findAll() throws IOException;}1.1.2.编写UserDaoImpl实现public class UserDaoImpl implements UserDao { public List<User> findAll() throws IOException {原创 2020-08-30 17:42:05 · 101 阅读 · 0 评论 -
17Mybatis快速入门
1.Mybatis简介1.1原始jdbc操作(查询数据)1.2原始jdbc操作(插入数据)1.3 原始jdbc操作的分析原始jdbc开发存在的问题如下:①数据库连接创建、释放频繁造成系统资源浪费从而影响系统性能②sql 语句在代码中硬编码,造成代码不易维护,实际应用 sql 变化的可能较大,sql 变动需要改变java代码。③查询操作时,需要手动将结果集中的数据手动封装到实体中。插入操作时,需要手动将实体的数据设置到sql语句的占位符位置应对上述问题给出的解决方案:①使用数据库连接池初原创 2020-08-28 15:59:37 · 125 阅读 · 0 评论 -
SpringMVC拦截器-用户登录权限控制
06-SpringMVC拦截器-用户登录权限控制分析(理解)需求概述:用户没有登录的情况下,不能对后台菜单进行访问操作,点击菜单跳转到登录页面,只有用户登录成功后才能进行后台功能的操作07-SpringMVC拦截器-用户登录权限控制代码实现1(应用)判断用户是否登录 本质:判断session中有没有user,如果没有登陆则先去登陆,如果已经登陆则直接放行访问目标资源先编写拦截器如下:public class PrivilegeInterceptor implements HandlerInter原创 2020-08-26 21:21:50 · 881 阅读 · 0 评论 -
15 SpringMVC的拦截器
SpringMVC的拦截器01-SpringMVC拦截器-拦截器的作用(理解)Spring MVC 的拦截器类似于 Servlet 开发中的过滤器 Filter,用于对处理器进行预处理和后处理。将拦截器按一定的顺序联结成一条链,这条链称为拦截器链(InterceptorChain)。在访问被拦截的方法或字段时,拦截器链中的拦截器就会按其之前定义的顺序被调用。拦截器也是AOP思想的具体实现。02-SpringMVC拦截器-interceptor和filter区别(理解,记忆)关于intercept原创 2020-08-16 16:59:43 · 100 阅读 · 0 评论 -
14SpringMVC异常处理机制
1. SpringMVC异常处理机制1.1 异常处理的思路系统中异常包括两类:预期异常和运行时异常RuntimeException,前者通过捕获异常从而获取异常信息,后者主要通过规范代码开发、测试等手段减少运行时异常的发生。系统的Dao、Service、Controller出现都通过throws Exception向上抛出,最后由SpringMVC前端控制器交由异常处理器进行异常处理,如下图:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-sfR3WcOs-159730原创 2020-08-13 15:24:20 · 118 阅读 · 0 评论 -
13SpringMVC的文件上传
SpringMVC的文件上传1-SpringMVC的请求-文件上传-客户端表单实现(应用)文件上传客户端表单需要满足:表单项type=“file”表单的提交方式是post表单的enctype属性是多部分表单形式,及enctype=“multipart/form-data”<form action="${pageContext.request.contextPath}/quick22" method="post" enctype="multipart/form-data">原创 2020-08-13 15:23:49 · 109 阅读 · 0 评论 -
12SpringMVC的数据响应
SpringMVC的请求和响应SpringMVC的数据响应01-SpringMVC的数据响应-数据响应方式(理解)页面跳转直接返回字符串通过ModelAndView对象返回回写数据直接返回字符串返回对象或集合02-SpringMVC的数据响应-页面跳转-返回字符串形式(应用)03-SpringMVC的数据响应-页面跳转-返回ModelAndView形式1(应用)在Controller中方法返回ModelAndView对象,并且设置视图名称@RequestMapping(va原创 2020-08-13 15:15:31 · 165 阅读 · 0 评论 -
11SpringMVC的请求
SpringMVC的请求11-SpringMVC的请求-获得请求参数-请求参数类型(理解)客户端请求参数的格式是:name=value&name=value……服务器端要获得请求的参数,有时还需要进行数据的封装,SpringMVC可以接收如下类型的参数基本类型参数POJO类型参数数组类型参数集合类型参数12-SpringMVC的请求-获得请求参数-获得基本类型参数(应用)Controller中的业务方法的参数名称要与请求参数的name一致,参数值会自动映射匹配。并且能自动做类型转换原创 2020-08-13 15:15:02 · 86 阅读 · 0 评论 -
10 spring与web的整合-springmvc入门
1. Spring与Web环境集成1.1 ApplicationContext应用上下文获取方式应用上下文对象是通过new ClasspathXmlApplicationContext(spring配置文件) 方式获取的,但是每次从容器中获得Bean时都要编写new ClasspathXmlApplicationContext(spring配置文件) ,这样的弊端是配置文件加载多次,应用上下文对象创建多次。在Web项目中,可以使用ServletContextListener监听Web应用的启动,我们可原创 2020-08-11 16:56:45 · 135 阅读 · 0 评论 -
09 spring事务开发
声明式事务控制1. 编程式事务控制相关对象1.1 PlatformTransactionManagerPlatformTransactionManager 接口是 spring 的事务管理器,它里面提供了我们常用的操作事务的方法。注意:PlatformTransactionManager 是接口类型,不同的 Dao 层技术则有不同的实现类,例如:Dao 层技术是jdbc 或 mybatis 时:org.springframework.jdbc.datasource.DataSourceTrans原创 2020-08-07 21:42:54 · 89 阅读 · 0 评论 -
08Spring -JdbcTemplate基本使用
JdbcTemplate基本使用01-JdbcTemplate基本使用-概述(了解)JdbcTemplate是spring框架中提供的一个对象,是对原始繁琐的Jdbc API对象的简单封装。spring框架为我们提供了很多的操作模板类。例如:操作关系型数据的JdbcTemplate和HibernateTemplate,操作nosql数据库的RedisTemplate,操作消息队列的JmsTemplate等等。02-JdbcTemplate基本使用-开发步骤(理解)①导入spring-jdbc和spr原创 2020-08-07 16:56:46 · 107 阅读 · 0 评论 -
07SpringAOP开发(配置文件+注解)
1.7 AOP 相关概念Spring 的 AOP 实现底层就是对上面的动态代理的代码进行了封装,封装后我们只需要对需要关注的部分进行代码编写,并通过配置的方式完成指定目标的方法增强。在正式讲解 AOP 的操作之前,我们必须理解 AOP 的相关术语,常用的术语如下:Target(目标对象):代理的目标对象Proxy (代理):一个类被 AOP 织入增强后,就产生一个结果代理类Joinpoint(连接点):所谓连接点是指那些被拦截到的点。在spring中,这些点指的是方法,因为spring原创 2020-08-05 20:51:56 · 147 阅读 · 0 评论 -
06SpringAOP初始与AOP的动态代理技术
1.Spring 的 AOP 简介1.1 什么是 AOPAOP 为 Aspect Oriented Programming 的缩写,意思为面向切面编程,是通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。AOP 是 OOP 的延续,是软件开发中的一个热点,也是Spring框架中的一个重要内容,是函数式编程的一种衍生范型。利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。1.2 AOP 的作用及其优势作用:在程原创 2020-08-05 20:43:39 · 117 阅读 · 0 评论 -
05spring-数据源配置+注解开发
1.Spring配置数据源1.1 数据源(连接池)的作用数据源(连接池)是提高程序性能如出现的事先实例化数据源,初始化部分连接资源使用连接资源时从数据源中获取使用完毕后将连接资源归还给数据源常见的数据源(连接池):DBCP、C3P0、BoneCP、Druid等开发步骤①导入数据源的坐标和数据库驱动坐标②创建数据源对象③设置数据源的基本连接数据④使用数据源获取连接资源和归还连接资源1.2 数据源的手动创建①导入c3p0和druid的坐标<!-- C3P0连接池 -->原创 2020-08-05 16:17:36 · 120 阅读 · 0 评论 -
04spring相关API
4. spring相关API4.1 ApplicationContext的继承体系applicationContext:接口类型,代表应用上下文,可以通过其实例获得 Spring 容器中的 Bean 对象4.2 ApplicationContext的实现类1)ClassPathXmlApplicationContext 它是从类的根路径下加载配置文件 推荐使用这种2)FileSystemXmlApplicationContext 它是从磁盘路径上加载配置文件,配置文件可原创 2020-08-04 17:36:37 · 159 阅读 · 0 评论 -
03spring-Bean的依赖注入
3.5 Bean的依赖注入入门①创建 UserService,UserService 内部在调用 UserDao的save() 方法public class UserServiceImpl implements UserService { @Override public void save() { ApplicationContext applicationContext = new ClassPathXmlApplicationContext原创 2020-08-04 17:33:17 · 140 阅读 · 0 评论 -
02spring中bean实例化的三种方法
3.4 Bean实例化三种方式1) 使用无参构造方法实例化 它会根据默认无参构造方法来创建类对象,如果bean中没有默认无参构造函数,将会创建失败<bean id="userDao" class="com.itheima.dao.impl.UserDaoImpl"/>2) 工厂静态方法实例化 工厂的静态方法返回Bean实例public class StaticFactoryBean { public static UserDao createUser原创 2020-08-04 17:29:31 · 147 阅读 · 0 评论 -
00重学spring--序言
这是一个简单的序言。Spring,3年前我已经开始接触并用来开发了,但是我在以前一直没有意识到用博客去记录自己的学习之路和学习笔记,以及用远程仓库去管理自己的代码。因此,我开设了一个新的栏目,重新学习spring,并简单记录其中比较重要和常用的知识点,并把其中这些知识点都用代码去展示效果。在后面发的学习文章中,我将会在文章的末尾提供代码的链接和涉及的代码文件说明。希望这个栏目可以给初学者一些指引之路,也可以为众多已经学习过的朋友提供一个快速回顾的地方。共勉!!!...原创 2020-08-03 23:01:57 · 96 阅读 · 0 评论 -
01spring的初识和简单入门
1. spring概述1.1 Spring是什么(理解)Spring是分层的 Java SE/EE应用 full-stack 轻量级开源框架,以 IoC(Inverse Of Control:反转控制)和 AOP(Aspect Oriented Programming:面向切面编程)为内核。提供了展现层 SpringMVC和持久层 Spring JDBCTemplate以及业务层事务管理等众多的企业级应用技术,还能整合开源世界众多著名的第三方框架和类库,逐渐成为使用最多的Java EE 企业应用开源框原创 2020-08-03 22:51:48 · 185 阅读 · 0 评论