在本人的Spring Data JPA教程的第二部分描述了如何用Spring Data JPA创建一个简单的CRUD应用,本博文将描述如何在Spring Data JPA中使用query方法创建自定义查询,为了有一个合理的示例,我为我的应用创建了三个要求: 实现通过他们的last name作为搜索条件搜索到person. 搜索功能必须返回这样的person,它们的last name准确匹配搜索条件. 搜索不区分大小写. 现在开始扩展示例应用. 所需步骤 完成要求的步骤如下: 创建一个query方…
Java Spring Boot VS .NetCore (一)来一个简单的 Hello World Java Spring Boot VS .NetCore (二)实现一个过滤器Filter Java Spring Boot VS .NetCore (三)Ioc容器处理 Java Spring Boot VS .NetCore (四)数据库操作 Spring Data JPA vs EFCore Java Spring Boot VS .NetCore (五)MyBatis vs EFCore…
系列目录 spring事务详解(一)初探事务 spring事务详解(二)简单样例 spring事务详解(三)源码详解 spring事务详解(四)测试验证 spring事务详解(五)总结提高 一.引子 在Spring中,事务有两种实现方式: 编程式事务管理: 编程式事务管理使用TransactionTemplate可实现更细粒度的事务控制. 申明式事务管理: 基于Spring AOP实现.其本质是对方法前后进行拦截,然后在目标方法开始之前创建或者加入一个事务,在执行完目标方法之后根据执行情况提交或…
Spring Boot项目简单上手+swagger配置 1.项目实践 项目结构图 项目整体分为四部分:1.source code 2.sql-mapper 3.application.properties  4.pom.xml 工作量主要集中在1,2:3,4主要是一些配置项,依赖库的添加. (1)建表语句: CREATE TABLE `city` ( `id` ) unsigned NOT NULL AUTO_INCREMENT COMMENT '城市编号', `province_id` ) u…
一.Spring MVC简介: 1.什么是MVC 模型-视图-控制器(MVC)是一个众所周知的以设计界面应用程序为基础的设计模式.它主要通过分离模型(Model).视图(View)及控制器(Control)在应用程序中的角色,从而将业务逻辑从界面中解耦.通常,模型负责封装应用程序数据在视图层展示.视图仅仅只是展示这些数据,不包含任何业务逻辑.控制器负责接收来自用户的请求,并调用后台服务(manager或者dao)来处理业务逻辑.处理后,后台业务层可能会返回了一些数据在视图层展示.控制器收集这些数…
在微服务架构中,我们将系统拆分成了很多服务单元,各单元的应用间互相依赖.由于每个单元都在不同的进程中运行,依赖通过远程调用的方式执行,这样就有可能因为网络原因或是依赖服务自身间题出现调用故障或延迟,而这些问题会直接导致调用方的对外服务也出现延迟,若此时调用方的请求不断增加,最后就会因等待出现故障的依赖方响应形成任务积压,最终导致自身服务的瘫痪.(雪崩效应) 在分布式架构中,当某个服务单元发生故障之后,通过断路器的故障监控,向调用方返回一个错误响应,而不是长时间的等待.这样就不会使得线程因调用故障…
Spring Boot Mybatis简单使用 步骤说明 build.gradle:依赖添加 application.properties:配置添加 代码编写 测试 build.gradle:依赖添加     需要添加下面三个依赖: dependencies { implementation 'org.springframework.boot:spring-boot-starter-data-jpa' implementation 'org.mybatis.spring.boot:mybatis…
简介 本例子采用的是SpringMVC.SpringSecurity和Spring整合的简单使用 使用gradle搭建的项目(gradle比maven更加便捷),可以自行了解 web.xml配置 <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.…
使用Spring缓存的简单Demo 1. 首先创建Maven工程,在Pom中配置 <dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <version>4.1.2.RELEASE</version> </dependency> <dependency> <groupId…
Spring依赖注入 --- 简单使用说明 本文将对spring依赖注入的使用做简单的说明,enjoy your time! 1.使用Spring提供的依赖注入 对spring依赖注入的实现方法感兴趣的同学可以参考我的日志:http://www.cnblogs.com/kodoyang/p/Frame_Imitate_Spring.html 我们会用spring提供的ClassPathXmlApplicationContext实现来代替这篇日志中相应的实现 为导入的jar文件配置api 对应的L…
[算法]简单动态规划——三逆数的O(N^2)解法! 问题描述: 三逆数定义:给一个数的序列A[0,1,....N-1]),当i<j<k且A[i]>A[j]>A[k]时,称作ai,aj,ak为一个三逆数. 现在给定一个长度为N的数组,求此数组序列中存在三逆数的总个数. 本人暂时只想到O(N^2)时间复杂度的解法.不知道还没有没更好更快的解法.(谁有更好的解法,欢迎分享~) O(N^3)解法: 这个最直观了,直接三层循环进行统计,即可求和三逆数总和.代码太简单了,就略过了~ O(N^2…
spring+springMVC+mybatis简单整合, springMVC框架是spring的子项目,所以框架的整合方式为,spring+Mybatis或springMVC+mybatis. 三大框架整合所需要的jar包,mybatis 的jar,spring 的jar,springmvc需要的web jar包. 所需配置文件涉及到: 1.db.properties,(配置数据库的连接信息,如连接驱动,用户名,密码,连接池的配置等等) 2.log4j.properties,(配置日志信息,主…
[原文]https://www.toutiao.com/i6594205115605844493/ Spring学习Bean配置的三种方式(XML.注解.Java类)介绍与对比 本文将详细介绍Spring Bean配置的三种不同方式的特点与使用条件. 主要包括: 基于XML的配置方式 基于注解的配置方式 基于Java类的配置方式 一.基于XML的配置 请看Spring学习(十二)Spring 的配置文件概述 二.基于注解的配置 Spring2.0开始引入基于注解的配置方式,即Bean的定义信息可…
a.通过类的无参构造方法创建对象 在入门案例中就是这种方式.当用最普通的方式配饰一个<bean>时,默认就是采用类的 无参构造创建对象.在Spring容器初始化时,通过<bean>上配置的class属性反射的到字 节码对象,通过newInstance()创建对象. Class c = Class .forName("类的全路径名称") Object obj = c.newInstance() 这种方式下Spring创建对象,必须有无参的构造,否则无法通过反射创建…
Spring boot 注解简单备忘 1.定义注解 package com.space.aspect.anno;import java.lang.annotation.*; /** * 定义系统日志注解 * @date 2018/6/4 9:24 */ @Target(ElementType.METHOD) @Retention(RetentionPolicy.RUNTIME) @Documented public @interface SysLog { String value() defau…
spring对事务支持的三种形式: 1.通过spring配置文件进行切面配置 <bean id="***Manager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource" ref="***source" /> </bean> <tx:…
Eclipse IDE下的Spring框架使用简单实例 1 准备Java jdk安装. Eclipse软件安装.根据系统安装32/64版本,选择Eclipse IDE for Java Developers 进行在线安装. Spring框架下载. Commons_Logging包下载 2 配置工作在项目栏右键,Build Path->Config Build Path 选择Librarys -> Add External Jars导入Spring 与Commons_Logging的jar包 3…
基于Spring框架的简单多数据源切换解决办法 Spring框架JDBC包提供了一个抽象类AbstractRoutingDataSource提供了动态切换数据库的基础方法.我们仅仅需要实现一个简单的数据源选择算法就可以轻松的利用Spring框架实现数据源切换了. Spring支持每次被操作的单数据源的事务. 1.继承AbstractRoutingDataSource并实现方法determineCurrentLookupKey() package dev.tinyz.datasource; imp…
1 工具与环境 借助Eclipse4.3 + Maven3.0.3构建Java Web应用程序.使用Maven内置的servlet 容器jetty,不需手工集成Web服务器到Eclipse.还帮我们自动创建Java EE规范定义的Java Web应用程序的有效目录结构,如:WEB-INF/classes目录等,方便省心.当然Maven还有其他优秀的功能,这里不会详细介绍.pom.xml的内容可见第6小节. 接下来将介绍如果使用Spring MVC开发简单的Web应用程序,就从创建配置文件开始.…
AOP 1.什么是 AOP ? AOP 的全称为 Aspect Oriented Programming,译为面向切面编程,是通过预编译方式和运行期动态代理实现核心业务逻辑之外的横切行为的统一维护的一种技术.AOP 是面向对象编程(OOP)的补充和扩展. 利用 AOP 可以对业务逻辑各部分进行隔离,从而达到降低模块之间的耦合度,并将那些影响多个类的公共行为封装到一个可重用模块,从而到达提高程序的复用性,同时提高了开发效率,提高了系统的可操作性和可维护性. 2.为什么要用 AOP ? 在实际的 W…
Spring Boot应用HelloWorld的三种启动方式: 项目的创建可以在http://start.spring.io/网站中进行项目的创建. 首先项目结构: 1.  通过main方法的形式启动spring-boot应用,直接写一个main方法然后启动main方法即可(如上图) 2.  通过命令行的形式进行启动:首先进入到项目的根路径,然后输入mvn spring-boot:run进行启动应用,需要注意的是,命令行的界面关闭表示服务关闭.(如下图所示) 3.  通过命令行的形式启动,(也是…
SpringBoot中使用JSP Springboot的默认视图支持是Thymeleaf,但是Thymeleaf还没开始学,熟悉的还是jsp,所以要让Springboot支持 jsp. 一.在pom.xml中增加对jsp的支持 <!--使用JSP的配置--> <!-- servlet依赖. --> <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servl…
Spring Task是Spring 3.0自带的定时任务,可以将它看作成一个轻量级的Quartz,功能虽然没有Quartz那样强大,但是使用起来非常简单,无需增加额外的依赖,可直接上手使用. 一 如何实现定时任务 1. 开启定时任务 在启动类上增加@EnableScheduling注解,开启定时任务 2. 定时任务方法 使用@Scheduled注解的方法就会被声明成一个定时任务 @Slf4j @Component public class ScheduledTest { @Scheduled(…
续上篇,这篇我们来进一步探索 Tye 更多的使用方法.本篇我们来了解一下如何在 Tye 中如何对数据库进行链接. Newbe.Claptrap 是一个用于轻松应对并发问题的分布式开发框架.如果您是首次阅读本系列文章.建议可以先从本文末尾的入门文章开始了解. 中间件链接 绝大多数服务都需要用到外部中间件来支持应用程序的正常运行,通常来说,就包含有数据库.缓存中间件.消息队列和文件系统等等. 因此,在开发过程中需要在应用程序中管理对这些中间件的链接字符串. Tye 提供了一种方式以便更加容易的管理这…
这篇主要说对象的创建方式. spring.net提供了三种创建对象的方式,分别是构造器创建,静态工厂创建,实例工厂创建. 多数的情况下,容器会根据对象定义中type属性值去直接调用相应类型的某个构造器, 另外,容器也可以调用工厂方法来创建对象,这时的type属性的值就应该是包含工厂方法的类型. 一.通过构造器创建对象 通过构造器创建对象需要满足一定的条件, 1.指明对象类型type=“类全名,类所在程序集名”/ 2.有一个无参的构造函数(依赖注入的时候需要外部可以调用构造函数). <object…
本来这篇文章是会跟本系列的前两篇文章一起发布的.但是,昨天在找资料总结的时候遇到了一点意外,就延后了一些. 本篇的内容主要参考了 这篇博文:http://www.cnblogs.com/junrong624/p/4239517.html(百度搜索cron 表达式排名第一的链接).争取写得跟别人的有点不一样吧.虽然,内容大都类似. 先从例子开始: “0 0 10,14,16 * * ?  ”的意思是   什么呢? 首先 ,因为 Cron表达式是一个字符串,字符串以5或6个空格隔开,分为6或7个域,…
一:spring的容器就是bean所居住的地点,这个居民点有很多的bean,有外来的bean(相当于创建了一个bean),有出去谋生的(相当于消亡了一个bean),他们之间都有某种联系 (bean与bean之间的联系spring通过wiring 来实现).而这个居民点在spring中就是BeanFactory这个接口,至于ClassPathXmlApplicationContext.AnnotationConfigApplicationContext. AnnotationConfigWebAp…
Spring MVC中每个控制器中可以定义多个请求处理方法,我们把这种请求处理方法简称为Action,每个请求处理方法可以有多个不同的参数,以及一个多种类型的返回结果. 一.Action参数类型 如果在请求处理方法中需要访问HttpSession对象,则可以添加HttpSession作为参数,Spring会将对象正确的传递给方法,如:public  String action(HttpSession session):若需要访问客户端语言环境和HttpServletRequest对象,则可以在方…
这个例子是来自于Gary Mak等人写的Spring攻略(第二版)第八章Spring @MVC中的一个例子,在此以学习为目的进行记录. 问题:想用Spring MVC开发一个简单的Web应用, 学习这个框架的基本概念和配置. 解决方案: Spring MVC的核心组件是一个控制器(大多数框架都是控制器比较重要吧). 在最简单的Spring MVC应用中,控制器是需要在web.xml文件中配置的唯一Servlet. Spring MVC的控制器通常称作请求分发Servlet(Dispatcher…
配置每一项的详细作用不再详细解释,有兴趣的请google下 ,这里需要注意一点defaultCache标签定义了一个默认的Cache,这个Cache是不能删除的,否则会抛出No default cache is configured异常.另外,由于使用拦截器来刷新Cache内容,因此在定义cache生命周期时可以定义较大的数值,timeToIdleSeconds="300000" timeToLiveSeconds="600000",好像还不够大? 然后,在将Cac…