SSM框架
文章平均质量分 54
codingCoge
人生是场马拉松
QQ:
1115106468
展开
-
Spring+Maven+JdbcTemplate实现对mysql数据库操作
第一步导入需要的maven: <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>5.0.8.RELEASE</version&原创 2018-09-15 11:08:14 · 1959 阅读 · 0 评论 -
AOP重用切入点表达式
第一步: 定义一个方法,用于声明切入点表达式。一般该方法为空,没有其他代码。 第二步: 使用@Pointcut声明切入点表达式:public class MynewAspect { @Pointcut("execution(public * calculator.CalculatorImpl.*(..))") public void decare(){} @Be...原创 2018-09-14 13:09:35 · 210 阅读 · 0 评论 -
AOP切面的优先级Order属性
如果有两个切面,那么谁先谁后怎么判断? 那如果我们要指定切面的执行顺序呢? 可以使用@Order注解指定切面的优先级,值越小优先级越高:举例: 两个切面类:@Order(2)@Aspect@Componentpublic class MyAspect { @Before(&quot;execution(public * calculator.CalculatorImpl.*(....原创 2018-09-14 12:36:02 · 8244 阅读 · 0 评论 -
SpringMVC拦截器登陆控制
在系统中,经常需要再处理用户请求之前和之后执行一些行为,在Spring中有AOP来实现这个目的,在MVC中 也提供了Interceptor拦截器机制,用于请求的预处理和后处理。有两个方法,这里我就介绍HandlerInterceptor接口的方法。定义一个拦截器,实现HandlerInterceptor接口,实现他的三个方法:preHandle:执行Handler方法之前执行,可以对请求做出...原创 2018-09-24 17:27:43 · 147 阅读 · 0 评论 -
IDEA+maven+SpringMVC配置简单web项目
刚接触SpringMVC讲真的,看理论真的是一头雾水,不如实打实手撕一个简单Demo学得快。这里我就简单用SpringMVC配置一个小项目来理解一下SpringMVC到底是什么妖怪。这里我就写一个简单web的栗子,模拟SpringMVC的流程,最终显示页面的效果是这样的:http://localhost:8080/SpringMVC_test/http://localhost:80...原创 2018-09-19 14:40:53 · 1251 阅读 · 0 评论 -
Spring的AOP五大通知注解
通知注解 : 声明方法,在方法前加入通知注解,指定要拦截的对象信息 注意:* 代表任意修饰符号 任意值AOP五大通知注解:@Before 前置通知,在方法执行之前执行@After 后置通知,在方法执行之后执行(无论是否发生异常)还不能访问目标方法执行的结果@AfterRunning 返回通知,在方法正常结束后 返回结果之后执行 可以访问方法的返回值@AfterT...原创 2018-09-13 21:50:45 · 7170 阅读 · 2 评论 -
Spring+Maven+Aspectj的AOP实现对指定对象的切面拦截
首先进入Maven仓库的Aspectj项目,复制Aspectj需要的配置: https://mvnrepository.com/search?q=aspectj配置pom.xml:&amp;amp;amp;amp;lt;!--spring上下文包,在加载spring配置文件时用到--&amp;amp;amp;amp;gt; &amp;amp;amp;amp;lt;dependency&amp;amp;amp;amp;gt;原创 2018-09-13 18:29:36 · 1489 阅读 · 0 评论 -
SpringMVC中的异常处理(全局异常处理对自定义异常类进行统一处理)
前言:WEB开发中,总会有一些不可预料的错误,对于一些课预测的异常,我们可以自定义一个异常类,然后再加载个全局异常处理器,对系统中出现的异常进行统一的处理。注意:当你在Springmvc配置文件中配置全局异常处理器的时候,只要如下配置即可: <!--只要该bean继承了HandlerExceptionResolver接口,这个类就会被SpringMVC作为一个全局异常处理器-->...原创 2018-09-23 12:25:55 · 1955 阅读 · 0 评论 -
Spring核心技术面向切面编程AOP
摘自知乎答案: 链接:https://www.zhihu.com/question/24863332/answer/48376158最近在学这方面的内容,读到的这段话我感觉说的很清楚了:这种在运行时,动态地将代码切入到类的指定方法、指定位置上的编程思想就是面向切面的编程。面向切面编程(AOP是Aspect Oriented Program的首字母缩写) ,我们知道,面向对象的特点是继承、...转载 2018-09-13 16:21:17 · 218 阅读 · 0 评论 -
Spring4新特性泛型依赖注入
什么叫做泛型依赖注入呢?就是带泛型的两个父类他们之间有引用关系,子类各自继承他们,子类之间彼此之间也会有父类间的引用关系。举例: 两个父类:之间有引用关系。package one;public class Respository<T> {}import org.springframework.beans.factory.annotation.Autowir...原创 2018-09-13 15:01:47 · 191 阅读 · 0 评论 -
Spring注解配置Bean以及解决Bean之间的关联关系
组件扫描: Spring能够从classpath自动扫描,查找特定注解的组件(Bean类)。 有四种特定组件:@Component 基本注解,标识受Spring管理的组件@Repository 标识持久层@Service 标识业务层组件@Controller 标识表现层组件注意: 其实这些注解没有硬性要求,只是约定俗成而已的。 就算你给持久层标识@Component也...原创 2018-09-13 14:00:02 · 889 阅读 · 0 评论 -
Spring之Bean的生命周期以及Bean后置处理器
注意: 在Bean的声明离设置init-method和destroy-method属性,为Bean指定初始化和销毁方法。1. 通过构造器或者工厂方法创建Bean实例2. 为Bean的属性设置值和对其他Bean的引用3. 调用Bean的初始化方法4. 使用Bean5. 关闭容器的时候 调用Bean的销毁方法举例: <bean id="getHello" cla...原创 2018-09-13 10:59:31 · 422 阅读 · 0 评论 -
Spring之SpEL动态赋值
spEL:如果是字面值,用spel的意义不大 动态赋值 语法:value="#{}"作用:可以调用指定类的静态方法或者静态属性可以引用其他Bean可以引用其他Bean的属性可以调用其他方法,还可以链式操作还支持算术运算法 还可以作字符串连接 还可以比较运算符等SpEL引用类的静态变量,或者静态方法,也可以引用其他Bean:类:static String...原创 2018-09-13 10:53:08 · 3635 阅读 · 0 评论 -
Spring+Maven+DBCP配置数据库连接
首先maven引入: <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.11</version></depend原创 2018-09-13 10:48:25 · 7793 阅读 · 0 评论 -
配置SpringMVC中的映射器和适配器
SpringMVC中的映射器到底是干什么的?根据DispatcherServlet传递过来的url地址,找到对应的Handler处理器。(Controller,可以理解为web中的servlet)适配器呢?处理器适配器按照他要求的规则:比如实现Controller接口。根据xml配置映射器的三种方法:第一种:BeanNameUrlHandlerMapping将Bean的name作为u...原创 2018-09-19 17:08:37 · 1460 阅读 · 0 评论 -
idea+mysql+maven+SSM配置一个简单的web项目
前言:照着网上的配置搞了一天了,总觉得没差,但就是各种bug报错,头痛的不行,看日志也是一脸懵逼,说啥找不到文件。今天就来记录一下从无到有的构建一个简单完整的ssm项目,主要是为了熟悉构建ssm的配置问题,因为太繁琐,我就把这个当一个模板放到了git上,有兴趣的朋友可以下载来参考。实现的目标是:访问首页:http://localhost:8080/ssm_demo/页面显示:He...原创 2018-09-30 21:16:43 · 1045 阅读 · 0 评论 -
SpringBoot的restful风格的用户信息后台管理系统
源码地址Github:https://github.com/jjc123/Springboot_restful_crudDemo可以直接通过命令行打开jar包而不需要tomcat:java -jar restful-demo-0.0.1-SNAPSHOT.jar访问地址:http://localhost:8451/crud/index实现了restful风格的增删改查功能以及一个登...原创 2019-06-19 20:13:57 · 1279 阅读 · 0 评论 -
java配置SSM纯注解整合Redis开发高并发抢红包项目
前言:前段时间学习点Redis,这次结合ssm实现一个高并发抢红包的项目。跟以前不一样的:基于java配置SSM,而并非XML.为什么要这样呢?找了点网络上的答案:在使用Spring开发时,我们经常会看到各种各样xml配置,过于繁多的xml配置显得复杂烦人。 在Spring3之后,Spring支持使用JavaConfig来代替xml配置, 这种方式也得到越来越多人的推荐,甚至...原创 2018-11-22 20:34:30 · 1056 阅读 · 0 评论 -
SSM搭建一个后台管理系统
看一下效果图:登陆界面:图片上传页面:我也把项目放到服务器上了,可以直接看:http://codingcoge.cn/ssm-demo/login.html我也放到github上:https://github.com/jjc123/SSM_Demo_Last应用技术背景:1. jdk:jdk82. java框架:SSM3. 服务器:tomcat9实现集群分布和负载均衡4...原创 2018-10-24 17:20:51 · 9916 阅读 · 16 评论 -
SSM项目部署到CentOs7服务器的问题
前言承接上一篇博客写的SSM框架搭建的一个后台管理系统,部署到CentOs7服务器,其中遇到的一些坑坑洼洼。可以看一下项目的内容:http://codingcoge.cn/ssm-demo/login.html服务器CentOs7部署jdk,tomcat,mysql这些安装步骤我这就不累赘了,主要讲一下部署ssm项目的时候遇到的一些问题,和常用的shell命令rz:本地文件传递到服务...原创 2018-10-24 20:29:00 · 2324 阅读 · 2 评论 -
windows下Nginx+Tomcat实现集群以及Nginx实现动静分离
最近学习了点Nginx的基础配置,是真的强大。简单来说Nginx的作用:负载均衡,实现项目的集群分布。意思就是同一个项目可以分别放在不同的服务器里,通过Nginx配置管理这多个服务器,这样子可以分担服务器压力,将流量按负载均衡算法分配给这些不同的服务器,但是访问的都是同一个项目。动静分离,实现项目的静态资源和动态资源分离访问。Nginx访问静态资源的速度比Tomcat快,所以一般都是静态资...原创 2018-10-22 13:20:26 · 730 阅读 · 0 评论 -
SSM框架+AdminLTE3+JqGrid实现Token验证和分页查询
我是跟着13的课一步步下来的,https://gitbook.cn/gitchat/column/5b4dae389bcda53d07056bc9/topic/5b4f1b70dbb1436093a6cc87这里栗子也是按照他的模板进行了一点修改,已经放到git上了,有兴趣的朋友可以看一看:https://github.com/jjc123/SSM-AdminLTE3_login...原创 2018-10-07 12:08:29 · 2113 阅读 · 0 评论 -
静态资源访问问题以及两种解决方案
为什么会出现静态资源访问问题呢?因为拦截器的问题,先来看一下我的web.xml配置: &amp;amp;lt;display-name&amp;amp;gt;Archetype Created Web Application&amp;amp;lt;/display-name&amp;amp;gt; &amp;amp;lt;servlet&amp;amp;gt; &amp;a原创 2018-09-28 15:47:53 · 3638 阅读 · 0 评论 -
idea+maven+SpringMVC注解开发validation校验
前言:在一个运行的web系统中,一定少不了校验的环节,所以自然而然衍生出了很多校验框架,这里我就来简单介绍一种Bean validation 的校验框架,是基于Hibernate的。我的demo栗子已经放到git上了:网上的都是讲解,不如一个实实在在的栗子来的直接https://github.com/jjc123/Validation_Demo参考:https://www.jiansh...原创 2018-09-22 15:38:33 · 1817 阅读 · 0 评论 -
取消idea的语法报错和idea查看maven依赖树
取消idea的语法报错:有时候真的很烦躁看着你的配置文件下下面一条波浪线,看看:于是乎我选择不要,太影响美观了,而且总给我一种我写错了的错觉:ctrl+alt+s打开settings页面:将Spelling下的Typo框框去掉打勾即可。idea查看maven依赖树打开pom.xml文件 ,然后右键,Diagrams然后选择Show Dependencies即可查看maven依赖树...原创 2018-09-22 14:57:37 · 1046 阅读 · 0 评论 -
利用SpringMVC实现Json交互
自己琢磨了下再加上网上参考的,还是比较完整的一个Json栗子,有兴趣的朋友可以看看,我放到了Git上:https://github.com/jjc123/SpringMVC_Json_Demo注意4点:点1:maven配置只要:··· <dependency> <groupId>com.fasterxml.jackson.core</groupId...原创 2018-09-27 17:18:52 · 329 阅读 · 0 评论 -
利用SpringMVC上传文件的Demo
前言:文件的上传功能也在网站中发挥着不可替代的作用,这里我就来讲讲简单利用SpringMVC实现文件的上传。这里我的配置是这样的:idea+maven+tomcat9+jdk8我也将该项目的Demo放到了git上,有兴趣的朋友可以看一看:入门用https://github.com/jjc123/SpringMVC_File_upload接下来我就来强调里面的细节问题:必须的内容在...原创 2018-09-27 11:19:03 · 348 阅读 · 0 评论 -
Spring+Maven+jdbcTemplate+事务 实现图书买卖Demo
先来简单介绍下事务,我的理解就是 使得一系列对数据库的操作原子化。 举个栗子:你给别人转账,你的钱少了,但是别人的账户余额没有同时增加。或者你给别人转账,你的钱没少,别人账户余额增加了。分析: 转账扣钱是一个操作,收账增钱又是另一个操作。 如果中途出现错误,只实现了一部分操作,那么问题可想而知。 而事务的作用就是将两个操作粘合在一起,具有原子性。 只有两个都成功,才操作成功...原创 2018-09-15 15:26:33 · 561 阅读 · 0 评论 -
配置SpringMVC中的视图解析器
视图解析器的作用:就是当 DispatcherServlet将ModelAndView传递给视图解析器的时候,将ModelAndView数据填充到相应的视图中,然后返回一个带有数据的视图给DispatcherServlet.视图解析其中有个抽象类:AbstractCachingViewResolver 它将解析过的视图进行缓存,下次再次解析的时候就会在缓存中直接寻找该视图。第一种视图:U...原创 2018-09-20 10:50:15 · 15495 阅读 · 2 评论 -
Spring+Mybatis+Mysql+IDEA+Maven+log4j整合Demo
前言:背景:IDEA+JDK8+Mysql8前部分我已经学习了Spring和Mybatis两大框架。现在这篇文章就来讲讲,使用IDEA整合Spring+Mybatis,过程中用log4j来输出sql语句,以便查看软件与数据库之间的具体交流过程,而不是一个简简单单的返回结果。如:为了方便起见,栗子也只是简简单单的一个查询功能,主要的重点是:Spring+Mybatis+IDEA+log...原创 2018-09-18 12:36:29 · 404 阅读 · 0 评论 -
Mybatis自定义插件
Mybatis插件原理和执行流程对四大对象和插件有了一定了解后,这里我就开始简单实现一个自定义插件,来拦截四大对象,实现拦截器功能。 步骤:1. 编写Interceptor的实现类2. 使用@Intercepts注解完成插件签名 说明插件的拦截四大对象之一的哪一个对象的哪一个方法3. 将写好的插件注册到全局配置文件中编写Interceptor的实现类(dao层)以及注解声...原创 2018-09-07 12:05:32 · 4482 阅读 · 0 评论 -
Mybatis插件原理和执行流程
插件: 插件存在的目的就相当于javaweb中的拦截器,可以拦截要操作的四大对象,额外添加内容,使得Mybatis的灵活性更强。插件原理 * 在四大对象创建的时候 * 1、每个创建出来的对象不是直接返回的,而是 * interceptorChain.pluginAll(parameterHandler); * 2、获取到所有的Interceptor(拦截器)(插件需要实现...原创 2018-09-07 11:50:04 · 4331 阅读 · 2 评论 -
Spring通过工厂方法配置Bean
前言:Spring配置Bean的方法有很多,这里只介绍通过工厂方法配置Bean。 所谓工厂即含有批量的Bean,可根据传入的参数条件返回对应的Bean实例。工厂又分两种:静态工厂通过静态方法返回Bean实例。实例工厂通过实例方法返回Bean实例。区别两者: 前者配置Bean的时候是配置实例Bean,而不是静态工厂。 后者配置Bean的时候需要先配置实例工厂,然后根据传参来配...原创 2018-09-12 15:26:18 · 145 阅读 · 0 评论 -
Mybatis中查询结果中返回值是resultType和resultMap
resultType和resultMap是select标签内的属性,来决定返回值的类型。 resultType和resultMap区别:实体类和数据库列属性对应则使用resultType, 否则使用resultMap指定列名属性和实体类属性对应resultType指定参数:1. 返回值是实体类: resultType属性值:指定实体类全路径&lt;select id...原创 2018-09-06 21:03:32 · 2139 阅读 · 0 评论 -
Mybatis中的参数问题
单个参数: mybatis不会做特殊处理 #{任意符号} 整个就代表传入的参数 如果传入的是一个对象那么#{属性名称}就代表该对象的属性 如果是 list对象 比如批量插入 #{item.属性}才可以访问其中的属性多个参数: mybatis会做特殊处理。 多个参数会被封装成 一个map, key:param1…paramN,或者参数的索引也可以 ...原创 2018-09-06 20:28:27 · 536 阅读 · 0 评论 -
Mybatis插入时获取自增主键
insert插入的时候获取自增主键值?对应的Insert标签添加两个属性:useGenerateKeys="true" 使用自增主键获取主键值策略keyProperty:指定对应的主键属性 就是mybatis获取到主键值后封装在javabean中的哪个实体类。举个栗子:<insert id="addTeacher" useGeneratedKeys="true" ke...原创 2018-09-06 20:19:21 · 338 阅读 · 0 评论 -
Mybatis中配置文件给实体类起别名
全局配置文件中的标签:标签3: typeAliases 别名处理器 可以为java类型起别名 别名忽略大小写原来:&lt;select id="getTeacherById" parameterType="integer" resultType="entity.Teacher"&gt;ctrl+左键就可以定位到该类 其实比较方便 起了别名后就难原创 2018-09-06 19:45:04 · 7377 阅读 · 0 评论 -
Mybatis的全局配置文件标签
前言:mybatis的全局配置文件包含以下内容: 数据库的连接池信息事务管理信息系统运行环境信息全局配置文件的头部:&amp;amp;amp;amp;lt;?xml version=&amp;amp;amp;quot;1.0&amp;amp;amp;quot; encoding=&amp;amp;amp;quot;UTF-8&amp;amp;amp;quot; ?&amp;amp;a原创 2018-09-06 19:44:14 · 499 阅读 · 0 评论 -
Mybatis的接口编程
前言:接口编程即面向接口编程。接口编程和传统编程不一样的是:TeacherMapper 一般接口名都要结尾Mapper之前dao接口对应一个实现类 现在对应配置文件 相当于实现类配置Mybatis的接口编程:定义接口,实现Mapper类(sql映射文件),配置全局变量先来看看Mybatis的基本目录结构: 重要文件:1. src文件下包内的Mapper接...原创 2018-09-06 19:31:00 · 609 阅读 · 0 评论 -
初认Mybatis-----Mybatis和jdbc,Hibernate的区别和优势
前言:前面基础的内容使用jdbc有时候真的不是很方便,各种操作都要自己手动完成。 这个时候出现了各种组件框架帮我们省略了这些步骤,对我们来说真的说是福音,只需要调用一个方法便可实现一个增删改查功能,大大缩短了任务量,让我们把更多的时间和精力放在真正的业务逻辑上。jdbc:没有使用框架的时候 sql语句是和java语句一起写在dao层耦合度高,维护不易而且实际开发中sql是...原创 2018-09-06 17:22:53 · 648 阅读 · 0 评论