唯一性约束、主键约束、唯一索引的区别 1.主键约束(PRIMARY KEY) 主键用于唯一地标识表中的每一条记录 可以定义一列或多列为主键 主键列上没有任何两行具有相同值(即重复值) 主键列上也不能为空值2.唯一性约束(UNIQUE) 唯一性约束用来限制不受主键约束的列上的数据的唯一性, 即表中任意两行在 指定列上都不允许有相同的值。3.唯一索引(INDEX) 创建唯
SpringMVC中静态资源访问 如果你的DispatcherServlet拦截路径设为了“/”,拦截了所有的请求,这样的话对js、css、jpg等文件的访问也就被拦截了,也就是说在项目中会访问不到你的资源文件。解决办法: 在SpringMVC的配置文件中加入下面两句即可: <mvc:annotation-driven/> <mvc:d
Maven中SpringMVC+mybatis整合 本篇文章介绍如何将SpringMVC跟mybatis进行整合 开发环境:JDK1.8+Toncat8.51.首先在idea中创建一个maven项目,然后引入两个框架所需要的依赖包: pom.xml:<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-insta
Spring中@Autowired和@Resource的区别 在Spring中@Autowired和@Resource都是用来自动注入,但两个注解有很大的区别,下面就来分析一下二者的差异:@Autowired 特性 说明 原理 根据类型来自动注入(ByType) 注入类型 既可以注入一个接口,也可以直接注入一个实例 限制 1.当注入一个接口时,这个接口只能有一个实现类,如果存在一个以上的实现类,那么Spring会抛出异常,因为两个
SpringMVC单元测试 在Maven项目中使用SpringMVC单元测试的步骤: 1.加入JUnit的依赖:<dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> <scope>test</scope> </depend
JavaWeb项目中classpath详解 1.JavaWeb中classpath表示哪个路径? classpath正如它的名字一样,指向的是java文件编译部署后的class所在的路径,即WEB-INF下面的classes目录。在Tomcat中部署项目后,除了src下java编译后的文件,src下的xml、properties等文件也会存放在这个目录,所以在开发时常将相应的xml配置文件放于src或其子目录下,如果要引用classpa
在Maven中使用Tomcat组件 在Maven中使用Tomcat组件能够方便我们对web项目的调试,Maven中Tomcat组件有两个版本,一个是Tomcat,一个是Tomcat7,下面我们以tomcat7为例演示它的配置过程:1.Tomcat 认证:添加用户为Tomcat添加具有角色管理器GUI和管理脚本的用户,作用是让Maven具有在Tomcat下发布项目,移除项目等操作权限。 在Tomcat的conf目录下的tomcat-u
Maven使用Tomcat组件出现错误的解决方案 在Maven与Tomcat配合部署过程中,最常见的错误有三种,下面是三种错误产生的原因以及相应的完美解决办法: 1. Connection refused错误报错信息如下:[ERROR]Failed to execute goal org.apache.tomcat.maven: tomcat7-maven-plugin: 2.0- SNAPSHOT: deploy
在Eclipse中使用Maven构建SpringMVC项目 本篇文章来介绍如何在Eclipse中使用Maven构建SpringMVC项目。1.首先构建基本的Maven Web项目点击Eclipse菜单File->New->Other->Maven->Maven Project在选择maven-archetype的界面选择maven-archetype-webapp: 点击Next弹出填写Maven坐标信息的窗口 在弹出的窗口填写好相应的groupId
Spring中Resource(资源)的获取 Spring中获取资源的方式一共有以下四种:通过Resource接口获取资源通过ResourceLoader接口获取资源通过ApplicationContext获取资源将resource注入到bean中的方式获取资源下面是对每种方式的详细讲解 :1.通过Resource接口获取资源Resource接口的实现类有: 实现类 说明 ClassPathResource 通过类路径获
Spring Bean的自动装配 一个bean使用其他的bean,除了显式的配置XML文件外,也可以通过配置< bean >的autowire 属性来实现bean的自动装配。自动装配的好处是减少了构造器注入和setter注入配置(其实就是少了< property >标签,但是Bean里面set方法还是必须的),减少了配置文件的长度。Spring 3.0支持以下4种自动装配模式: 模式 描述 no 默认的设置,它意味着没
Spring中的Aware接口 Spring中提供了一些以Aware结尾的接口,实现了Aware接口的bean在被初始化后,可以获取相应资源。通过Aware接口,可以对Spring相应资源进行操作(一定要慎重,因为可能修改Spring核心类)。 aware有以下接口: 接口 作用 BeanNameAware 在Bean中得到它在IOC容器中的Bean的实例的名字 BeanFactoryAware 在Bean
Spring Bean的初始化和销毁 Bean的初始化和销毁有以下几种方式: 一、实现接口的方式通过实现接口的方式来定制Bean的初始化和销毁方法。 初始化:实现InitializingBean接口,覆盖afterPropertiesSet()方法 销毁:实现DisposableBean 接口,覆盖destroy() 方法。 示例: 实现接口:public class BeanScope implements Initializ
Spring Bean的生命周期 一、生命周期流程图:Spring Bean的完整生命周期从创建Spring容器开始,直到最终Spring容器销毁Bean,这其中包含了一系列关键点。 若容器注册了以上各种接口,程序那么将会按照以上的流程进行。下面将仔细讲解各接口作用。二、各种接口方法分类Bean的完整生命周期经历了各种方法调用,这些方法可以划分为以下几类:1、Bean自身的方法:包括了Bean本身调用的方法和通过配置文件中的ini
Spring Bean的作用域 在XML文件中配置Bean时,我们可以通过scope为Bean配置指定的作用域。Bean的作用域分为五种: 代码 说明 singleton 单例模式,一个bean容器中只存在一个bean实例 prototype 原型模式,每次请求都会产生一个新的Bean实例 request 每次HTTP请求会产生一个新的Bean实例 session 每次HTTP Session
Spring单元测试:Spring Test+JUnit 在Spring项目中如果直接使用JUnit进行测试,那么可能导致Spring容器被多次初始化、数据库现场被破坏等问题,为了避免这些问题的出现,Spring为我们提供了Spring Test+JUnit单元测试模块。Spring Test的加入, 可以指定在测试用例执行完毕后,对数据库进行回滚操作,保证数据库的整洁。在Maven项目中使用Spring单元测试的步骤: 1.加入JUnit的依赖:<de
在Eclipse中使用Maven构建Spring项目 最新版的spring需要使用Maven构建,本文讲述怎么在Eclipse构建Maven项目,以配置Spring项目为例。maven简单介绍maven是构建工具,也是构建管理工具。ant只是构建工具,因为不支持生成站点功能,只有预处理,编译,打包,测试,部署等功能。1. 仓库的概念在基于Maven管理的项目开发中,这个项目自身是不引进第三方jar包的,使用的
Java 序列化Serializable详解(附详细例子) Java 序列化Serializable详解(附详细例子) 1、什么是序列化和反序列化Serialization(序列化)是一种将对象以一连串的字节描述的过程;反序列化deserialization是一种将这些字节重建成一个对象的过程。2、什么情况下需要序列化 a)当你想把的内存中的对象保存到一个文件中或者数据库中时候;b)当你想用套接字在网络上传送对象的时
Java中的克隆 有时候我们需要使用一个对象在某个时刻的状态(比如某个时刻对象中已经被赋值的属性),为了能够保存当时对象的状态,Java出现了克隆的操作。Java中要想实现克隆,操作十分简单,首先需要实现Cloneable接口,然后重写clone()方法即可。Cloneable接口是一个空接口,它的作用是做标记;clone()方法是一个native方法。 ★ 但是最重要的是我们需要明确: 当拷贝的
Java参数传递到底是值传递还是引用传递? “Java的参数传递到底是值传递还是引用传递?”这个问题在网上一直有争论,很多人也是云里雾里摸不着头脑,查阅网上的资料时也是鱼龙混杂,让人感觉高深莫测。其实这个问题一点也不难,下面我们先抛开值传递、引用传递的概念角度,从参数传递的原理来对这个问题进行分析。 ★ “拷贝”是Java参数传递的核心所在!只要搞清楚“拷贝”是如何在参数传递中发挥作用的,那么“值传递还是引用传递”这个问题将迎刃而解。参