SSM学习笔记
文章平均质量分 83
Spring、SpringMVC、MyBatis学习笔记
N3verL4nd
中年老男人~
展开
-
Spring 循环依赖的解决
A依赖B B依赖A的场景public class A { private B b; public void setB(B b) { this.b = b; } @Override public String toString() { return "A::toString"; }}public class B { private A a; public void setA(A a) {原创 2021-03-25 19:49:01 · 360 阅读 · 0 评论 -
使用Intellij IDEA编写Spring Hello World
下载Spring最新jar包:http://repo.spring.io/release/org/springframework/spring 基于Intellij2016.3与Java SDK1.81、新建一个Module2、添加依赖3、编写测试文件HelloWorld.javapackage com.xiya;原创 2017-03-04 10:37:16 · 6519 阅读 · 2 评论 -
spring ioc原理
IOC(DI):其实这个Spring架构核心的概念没有这么复杂,更不像有些书上描述的那样晦涩。Java程序员都知道:java程序中的每个业务逻辑至少需要两个或以上的对象来协作完成,通常,每个对象在使用他的合作对象时,自己均要使用像new object() 这样的语法来完成合作对象的申请工作。你会发现:对象间的耦合度高了。而IOC的思想是:Spring容器来实现这些相互依赖对象的创建、协调工作。转载 2017-03-14 16:45:58 · 432 阅读 · 0 评论 -
IOC基础
2.1.1 IoC是什么Ioc—Inversion of Control,即“控制反转”,不是什么技术,而是一种设计思想。在Java开发中,Ioc意味着将你设计好的对象交给容器控制,而不是传统的在你的对象内部直接控制。如何理解好Ioc呢?理解好Ioc的关键是要明确“谁控制谁,控制什么,为何是反转(有反转就应该有正转了),哪些方面反转了”,那我们来深入分析一下: ●谁控制谁转载 2017-03-14 18:12:59 · 542 阅读 · 0 评论 -
三、通过 FactoryBean 来配置bean
一般情况下,Spring 通过反射机制利用 的 class 属性指定实现类实例化 Bean ,在某些情况下,实例化 Bean 过程比较复杂,如果按照传统的方式,则需要在 中提供大量的配置信息。配置方式的灵活性是受限的,这时采用编码的方式可能会得到一个简单的方案。 Spring 为此提供了一个 org.springframework.bean.factory.FactoryBean 的工厂类接口原创 2017-03-20 14:17:22 · 993 阅读 · 0 评论 -
二、通过工厂方法来配置bean
静态工厂方法与实例工厂方法都是为了隐藏创建实例的细节。xml version="1.0" encoding="UTF-8"?>xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLo原创 2017-03-20 15:03:53 · 402 阅读 · 0 评论 -
Spring bean生命周期
•Spring IOC 容器可以管理 Bean 的生命周期,Spring 允许在 Bean 生命周期的特定点执行定制的任务.•Spring IOC 容器对 Bean的生命周期进行管理的过程:–通过构造器或工厂方法创建 Bean实例–为 Bean 的属性设置值和对其他Bean的引用–调用 Bean的初始化方法–Bean 可以使用了–当容器关闭时,调用Bean的销毁方法原创 2017-03-20 15:56:59 · 406 阅读 · 0 评论 -
如何运行使用gradle打包的项目
目标:https://github.com/davenkin/springmvc4-helloworld使用SpringMVC编写的一个HelloWorld程序。初学Gradle只能一步步摸索前进。该项目对应的build.gradleapply plugin: 'idea'apply plugin: 'jetty'repositories { mavenCentral原创 2017-03-20 21:31:20 · 11726 阅读 · 0 评论 -
使用Gradle构建Java项目
使用Gradle构建Java项目这个手册将通过一个简单的Java项目向大家介绍如何使用Gradle构建Java项目。我们将要做什么?我们将在这篇文档中创建一个简单的Java项目,然后使用Gradle构建它。需要准备什么?预留15分钟空闲时间一件称手的兵器(你最喜欢的IDE或者文本编辑器)Java环境([JDK6](http://www.oracle.com/techne原创 2017-03-21 15:50:28 · 1245 阅读 · 0 评论 -
Spring bean的作用域
The scope of this bean: typically "singleton" (one shared instance,which will be returned by all calls to getBean with the given id), or"prototype" (independent instance resulting from each call to原创 2017-03-22 09:34:13 · 549 阅读 · 0 评论 -
Spring使用外部属性文件
一、在 Spring Config 文件中配置 Bean 时,有时候需要在 Bean 的配置里添加 系统部署的细节信息, 如文件路径,数据源配置信息。而这些部署细节实际上需要在配置文件外部来定义。二、Spring 提供了一个 PropertyPlaceholderConfigurer 的 BeanFactory 后置处理器。这个处理器允许用户将 Bean 的配置部分内容外移到属性文件中,然原创 2017-03-22 10:14:29 · 619 阅读 · 0 评论 -
Spring配置 bean
在 Spring 的 IOC 容器里配置 Beanid="helloWorld" class="com.xiya.spring.beans.HelloWorld"> property name="name" value="lgh"/>在 xml 文件中通过 bean 节点来配置 beanid:Bean 的名称。在 IOC 容器中必须是唯一的若 id 没有指原创 2017-03-22 21:08:42 · 425 阅读 · 0 评论 -
Spring AOP理解
面向切面编程(AOP是Aspect Oriented Program的首字母缩写) ,我们知道,面向对象的特点是继承、多态和封装。而封装就要求将功能分散到不同的对象中去,这在软件设计中往往称为职责分配。实际上也就是说,让不同的类设计不同的方法。这样代码就分散到一个个的类中去了。这样做的好处是降低了代码的复杂程度,使类可重用。 但是人们也发现,在分散代码的同时,也增加了代码的重复性。什转载 2017-03-23 20:33:57 · 648 阅读 · 0 评论 -
Spring基于XML配置AOP
目录结构:D:\Java\IdeaProjects\JavaProj\SpringHelloWorld\src\cn\edu\bjut\service\StudentService.javapackage cn.edu.bjut.service;/** * Created by N3verL4nd on 2017/3/24. */public interface原创 2017-03-24 19:28:48 · 459 阅读 · 0 评论 -
Spring基于注解配置AOP
D:\Java\IdeaProjects\JavaProj\SpringHelloWorld\src\aop.xml<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context=原创 2017-03-24 20:02:00 · 463 阅读 · 0 评论 -
Spring基于注解装配bean
context:component-scan base-package="cn.edu.bjut.autowire"/>组件扫描(component scanning): Spring 能够从 classpath 下自动扫描, 侦测和实例化具有特定注解的组件. 特定组件包括:@Component: 基本注解, 标识了一个受 Spring 管理的组件@Respository: 标原创 2017-03-28 14:14:11 · 560 阅读 · 0 评论 -
Spring依赖注入之@Inject,@Autowired,@Resource
背景我曾经被问过若干次Spring中使用’@Resource’, ‘@Autowired’和’@Inject’实现依赖注入的区别这个问题,尽管我从同事得到一些看法同时也从网上看了相关的几篇文章,但我仍然模棱两可。注解ANNOTATIONPACKAGESOURCE@Resourcejavax.annotationJava转载 2017-04-09 17:43:15 · 1362 阅读 · 0 评论 -
@Autowired @Resource @Inject的区别
测试环境:Intellij + gradlegroup 'com.xiya'version '1.0-SNAPSHOT'apply plugin: 'java'apply plugin: 'idea'sourceCompatibility = 1.8repositories { //mavenCentral() maven { url 'http原创 2017-04-10 12:17:40 · 5079 阅读 · 0 评论 -
在WEB应用中使用spring
使用gradle新建一个web工程,过程见:http://blog.csdn.net/x_iya/article/details/68945373build.gradlegroup 'com.xiya'version '1.0-SNAPSHOT'apply plugin: 'idea'apply plugin: 'war'sourceCompatibility = 1.8原创 2017-04-19 17:19:47 · 705 阅读 · 0 评论 -
jsp中的局部变量
<%-- Created by IntelliJ IDEA. User: N3verL4nd Date: 2017/4/20 Time: 9:23 To change this template use File | Settings | File Templates.--%><% //获取基地址 String contextPath = request.原创 2017-04-20 10:11:16 · 1221 阅读 · 0 评论 -
使用 Intellij IDEA 与 Gradle 构建Spring项目
http://blog.csdn.net/x_iya/article/details/60321572如上,按照常规的方法,建立项目,导入依赖的jar包,编写代码。难免太麻烦了些。有了Gradle,它可以帮助我们导入依赖的jar包,测试项目也方便了很多。分享一个蛮不错的项目编写方案:(1)根据gradle的项目结构约定(Maven也有自己的约定),在命令行中创建目录即g原创 2017-05-17 15:27:57 · 2560 阅读 · 0 评论 -
Spring注解@Resource和@Autowired区别对比
文章一@Resource和@Autowired都是做bean的注入时使用,其实@Resource并不是Spring的注解,它的包是javax.annotation.Resource,需要导入,但是Spring支持该注解的注入。1、共同点两者都可以写在字段和setter方法上。两者如果都写在字段上,那么就不需要再写setter方法。2、不同点(1)@Autowired@Aut...转载 2017-06-17 21:18:24 · 6673 阅读 · 5 评论 -
Spring IoC有什么好处呢?
作者:Eric 链接:https://www.zhihu.com/question/23277575/answer/24259844 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。ioc的思想最核心的地方在于,资源不由使用资源的双方管理,而由不使用资源的第三方管理,这可以带来很多好处: - 第一,资源集中管理,实现资源的可配置和易管理。 - 第二,降低了使原创 2017-08-13 09:54:13 · 753 阅读 · 0 评论 -
谈谈对Spring IOC的理解
学习过Spring框架的人一定都会听过Spring的IoC(控制反转) 、DI(依赖注入)这两个概念,对于初学Spring的人来说,总觉得IoC 、DI这两个概念是模糊不清的,是很难理解的,今天和大家分享网上的一些技术大牛们对Spring框架的IOC的理解以及谈谈我对Spring Ioc的理解。一、分享Iteye的开涛对Ioc的精彩讲解首先要分享的是Iteye的开涛这位技术牛人对Spring框架的I转载 2017-08-13 14:59:25 · 437 阅读 · 0 评论 -
Spring中BeanPostProcessor
BeanPostProcessor:如果我们需要在Spring容器完成Bean的实例化、配置和其他的初始化(init-method标识的方法)前后添加一些自己的逻辑处理,我们就可以定义一个或者多个BeanPostProcessor接口的实现,然后注册到容器中。 Spring中Bean的实例化过程: Spring在配置完bean以后,会检查bean是否实现了InitializingBean接口,如原创 2017-10-10 11:51:59 · 534 阅读 · 0 评论 -
JDBC解析1
mysql版本:Ver 14.14 Distrib 5.7.16, for Win64 (x86_64)驱动版本号:5.1.40所有的JDBC应用程序都具有下面的基本流程:1、加载数据库驱动。(JDBC4.0版本后依赖service provider默认执行,也就是不再需要使用Class.forName加载驱动)2、建立到数据库的连接。3、执行SQL语句。4、处理结果。5、从数据库断开连接并释放资...原创 2017-04-25 10:18:52 · 1072 阅读 · 0 评论 -
Mybatis入门学习一:HelloWorld
参考:http://www.mybatis.org/mybatis-3/zh/index.html基于 IDEA 和 Gradle来实现。0、准备工作编写 build.gradlegroup 'com.xiya'version '1.0-SNAPSHOT'apply plugin: 'java'apply plugin: 'idea'sourceCompatibility原创 2017-05-08 22:27:44 · 909 阅读 · 0 评论 -
Mybatis入门学习四:Spring 与 MyBatis整合
参考:http://www.mybatis.org/mybatis-3/zh/index.html基于 IDEA 和 Gradle来实现。0、准备工作编写 build.gradlegroup 'com.xiya'version '1.0-SNAPSHOT'apply plugin: 'java'apply plugin: 'idea'sourceCom原创 2017-05-16 09:12:59 · 553 阅读 · 0 评论 -
MyBatis使用注解实现增删改查
使用Spring与MyBatis整合,即把mybatis数据源的配置、事务的管理、SqlSessionFactory的创建以及数据映射器接口Mapper的创建交由spring去管理”,所以mybatis的配置文件mybatis-config.xml中不需要再配置数据源及事务,在业务层service实现时不需要手动地获取SqlSession以及对应的数据映射器接口Mapper,通过spring的注入原创 2017-06-10 14:13:34 · 7819 阅读 · 0 评论 -
IntelliJ IDEA MyBatis-Plugin插件的使用
IntelliJ IDEA已经集成MyBatis-Plugin插件。通过简单的配置就可以生成所需的实体类、mapper映射文件和接口。在src/main/resources目录下新建mybatis-generator配置文件。生成文件如下所示:<!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DT原创 2017-06-12 10:30:34 · 39277 阅读 · 4 评论 -
使用Mybatis-Generator自动生成Dao、Model、Mapping相关文件
MyBatis简单易用,但是需要编写大量的实体类和Mapper映射文件。我们可以使用 Mybatis-Generator 来帮助我们完成以上文件的编写。下载 Mybatis-Generatorhttps://github.com/mybatis/generator此外,我们还需要数据库驱动文件,接下来的演示以mysql数据库为例。编写配置文件 generatorConfig.x原创 2017-06-12 14:02:48 · 912 阅读 · 0 评论 -
在gradle中使用MyBatis Generator生成model,dao,mapper
Mybatis Generator是一个mybatis工具项目,用于生成mybatis的model,mapper,dao持久层代码。Mybatis Generator提供了maven plugin,ant target,java三种方式启动。现在主流的构建工具是gradle,虽然mybatis generator没有提供gradle的插件,但gradle可以调用ant任务,因此,gradl转载 2017-06-12 14:20:05 · 8850 阅读 · 0 评论 -
MyBatis分页插件PageHelper的使用
先增加依赖compile group: 'com.github.pagehelper', name: 'pagehelper', version: '5.0.2'编写MyBatis配置文件<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://myb原创 2017-06-12 16:09:10 · 1555 阅读 · 0 评论 -
JDBC解析2
接上一篇JDBC解析:http://blog.csdn.net/x_iya/article/details/70670342一个简单的Demo:package cn.bjut.test;import java.sql.*;import java.io.PrintWriter;/** * Created by N3verL4nd on 2017/4/18. */public原创 2017-06-14 13:42:03 · 664 阅读 · 0 评论 -
mybatis在xml文件中处理小于等于号的方法
如上图所示,在MyBatis的XML映射文件中使用小于等于号解决:1、进行转义<小于号>>大于号&&和''单引号""双引号id="getPersons" resultType="cn.bjut.entity.Person">原创 2017-07-03 09:46:36 · 3008 阅读 · 0 评论 -
Mybatis Generator最完整配置详解
<!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN""http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd"><!-- 可以用于加载配置项或者配置文件,在整个配置文件中就可以使用$转载 2017-07-03 09:50:28 · 436 阅读 · 0 评论 -
MyBatis:There is no getter for property named 'XXX' in 'class java.lang.XXXX'
id="getPersons" resultType="cn.bjut.entity.Person"> SELECT * FROM persons test="age != null"> age = #{age} 对应的Mapper接口:List getPersons(Integer age);原创 2017-07-03 12:15:15 · 2289 阅读 · 0 评论 -
MyBatis 动态SQL语句
MyBatis 的强大特性之一便是它的动态 SQL。如果你有使用 JDBC 或其他类似框架的经验,你就能体会到根据不同条件拼接 SQL 语句有多么痛苦。拼接的时候要确保不能忘了必要的空格,还要注意省掉列名列表最后的逗号。利用动态 SQL 这一特性可以彻底摆脱这种痛苦。 动态 SQL 元素和使用 JSTL 或其他类似基于 XML 的文本处理器相似。在 MyBatis 之前的版本中,有很多的元素需原创 2017-07-03 20:24:09 · 724 阅读 · 0 评论 -
Mybatis一级缓存原理
一级缓存概念当我们使用Mybatis进行数据库的操作时候,会创建一个SqlSession来进行一次数据库的会话,会话结束则关闭SqlSession对象。那么一个SqlSession的生命周期即对应于Mybatis的一次会话。在Mybatis的一次会话中,我们很有可能多次查询完全相同的sql语句,如果不采取措施的话,每一次查询都查询一次数据库。而一次会话时间一般都是极短的,相同Sql的查询结果极有可能转载 2017-07-07 19:34:12 · 749 阅读 · 0 评论 -
Spring与SpringMVC整合
如何创建SpringMVC项目:http://blog.csdn.net/x_iya/article/details/68945373渐渐地喜欢上了这种开发方式。build.gradlegroup 'com.xiya'version '1.0-SNAPSHOT'apply plugin: 'idea'apply plugin: 'java'apply plugin: 'w原创 2017-05-17 22:26:55 · 991 阅读 · 0 评论