- 博客(17)
- 收藏
- 关注
转载 Spring 学习其四:Spring 的事务管理
一、对事务的理解我对事务的通俗理解就是,将一系类的数据库操作绑定在了一起,使得它们中只要一个无法执行成功,其他的也跟着被撤回。而且事务是可以一层包着一层的。这篇文章是我为了更好的理解 Spring 的事务管理机制做的笔记。Spring 的事务管理,采用的方案类似于它的 AOP,即通过切面把我们的数据库操作包裹起来,当被包裹的操作发生异常时,回滚事务,没有异常则提交事务。二、配...
2018-10-06 08:48:00
120
转载 Spring 学习其三:数据库编程
一、直接利用 JDBC 进行数据库编程虽然有 Spring 和 MyBatis 等数据持久化的利器在手,但还是有必要去了解下传统的 JDBC 开发方式。无论哪种框架,其本质都是在传统的 JDBC 方式上进行了封装。package JdbcTest;import java.sql.Connection;import java.sql.DriverManager;...
2018-10-04 13:37:00
151
转载 Spring 学习其二:AOP
一、AOPSpring 的两大特性,IOC 在上一章,本篇讨论另一大特性,AOP(面向切面)。何为面向切面,动态代理,可以绑定一个接口和一个它的实现,并且代理这个实现类,所以我们可以在代理里写进一些自己的操作,甚至可以不执行实现类的方法。原来的代码:这是接口:public interface ProxyService { void HelloWorl...
2018-10-02 21:33:00
240
转载 Spring 学习其一:IOC
一:传统的生产对象的方式我们一般在 java 中生产一个对象,会在代码中 new 一个对象,然后通过 set 的方式给他注入我们想要的属性。也就是说,java 在编译期间就知道,我们要生产什么对象,要配置哪些属性,就像下面这样: 1 public class EmployeeTest { 2 3 public static void main(String[...
2018-10-01 19:17:00
113
转载 利用 log4j 打印 mybaits
一、前言为了便于学习和程序调试,想利用 log4j 帮忙打印我用 mybatis 执行的 sql 语句,当前的状态是,我的项目里没有一点关于 log4j 的东西,以此为起点,到 log4j 能够答应出我想要的 sql 为止是本篇的内容,而 log4j 更深入的学习,留到以后再说。二 用 log4j 打印出 Hello World从官网下载 log4j 的 jar 包,jar ...
2018-10-01 11:36:00
295
转载 Mybatis 学习之路其四:级联
一、前言我参加工作的初期,对于mybatis还不太了解,开发的过程更多是参考公司大牛的代码,然后依样画葫芦。当时设计到 A 类里包含 B 类,然后查询 A 类相关信息(包含B类)的时候,我当时还不懂级联,使用的是一个笨方法,重新建了一个类,这个类包含了 A 类和 B 类的所有信息。这是一个非常笨的方法。事实上,利用 mybatis 的级联功能,能够很简单的查询一对一,和一对多的关系。...
2018-09-30 11:38:00
108
转载 Mybatis 学习之路其三:编写sql
一、利用 mysql 官网提供的测试数据在第一个简单的程序中,我们已经写了一个简单的 sql,下面,我们要尝试写一些比较复杂的 sql。为了能够有足够的数据够我们测试使用,我们可以从 mysql 的 github 里下载 mysql 提供的测试数据。具体操作如下:首先,请确保安装 mysql 的虚拟机已经安装了Git,然后我们创建一个专门放置 github repositor...
2018-09-29 17:39:00
156
转载 MyBatis 学习之路其二:利用 mybatis 的配置使项目结构更合理
在上一篇文章里,我们利用 mybatis 写了一个简单的小程序。现在,我们需要对这个项目进行配置,使得项目的结构更合理,更具备维护性。一、properties 属性在上篇的关于 Role 的程序里,我们在property 设置了 jdbc 的相关信息,这些property 是放置在 dataSource 里的。property 表示的是一个键-值对应关系,当我们需要用到某个值...
2018-09-29 17:33:00
102
转载 MyBatis 学习之路其一:使用mybatis 创建一个简单的程序
一、我们会用到的工具和网站mybatis 的 jar 包,我们可以从 mybatis 的官网下载,或者直接利用 maven 引用(推荐);mybatis-config.xml 即 mybatis 的配置文件,完全手写太过麻烦且容易出错,我们可以使用官网的模板:http://www.mybatis.org/mybatis-3/getting-started.html...
2018-09-29 12:56:00
126
转载 java知识点——动态代理
一、动态代理在使用 spring 进行开发时,经常会使用到动态代理。当我们要实现某个功能时,我们会编写一个 Service 接口,和一个(或者多个)实现该接口的 ServiceImpl 类。这么做的好处是可以使得避免耦合。我们再需要使用该方法是,并不会去显性的创建一个 ServiceImpl,我们会直接通过 Service.Method() 的方式来调用该方法,在普通的程序里,这样...
2018-09-28 19:48:00
97
转载 Java 知识点 —— 反射
一、什么是反射java 运行时,识别对象和类的信息的传统方式是 RTTI,它要求我们再编译阶段就确定所以对象的信息,比如,如何去构造它,参数是什么...而反射机制则是在运行阶段去确认这些信息。二、反射的实现简单的例子,假设我们有一个类 ReflectModel: 1 package SSMTest; 2 import static MyTools.PrintToo...
2018-09-28 15:04:00
158
转载 Thinking in java 之并发其五:强大的 JUC 包
一、前言java 的 java.util.concurrent 是 java 用于提供一些并发程序所需功能的类包。它的功能全面且强大,在前面,我们已经使用过原子基本变量,BlockingQueue 等类。现在,我们需要更加深入的去了解 JUC 的强大功能。二、CountDownLatch该类用来同步一个或多个任务,强制它们等待由其他任务执行的一组操作完成。在CountD...
2018-09-19 12:56:00
128
转载 Thinking in java 之并发其四:线程之间的协作(下)
五、使用显示的 Lock 和 Condition 对象在 JUC(java.util.concurrent) 中,还有额外的显示工具可以用来重写WaxOMatic.java。使用互斥并允许任务挂起的基本类型是 Condition,可以通过在 Condition 上调用 await() 来挂起一个任务。当外部条件发生变化,意味着某个任务应该继续执行时,你可以通过调用 signal() ...
2018-09-17 11:06:00
114
转载 Thinking in java 之并发其四:线程之间的协作(上)
一、前言在第二章的时候,我们学会了通过锁的方式来同步多个任务,从而使得一个任务不会干涉另一个任务的资源。也就是说,多个任务在交替步入某项共享资源(通常是内存),可以使用互斥来使得任何时刻只有一个任务可以访问这项资源。而接下来,我们需要学习如何使任务彼此之间可以协作,以使得多个任务可以一起工作去解决问题。那么,我们面临的问题不再是彼此之间的干涉,而是彼此之间的协调。当任务协作时,关...
2018-09-11 21:14:00
161
转载 Thinking in java 之并发其三:线程的状态
一、线程的四种状态在 java 中,一个线程可以处于下列四种状态之一: 1)新建(new):当线程被创建时,它会短暂的处于这种状态。在这种状态下时,线程已经分配了必需的系统资源,并执行了初始化。此刻线程已经有资格获得 cpu 时间了,之后调度器将把这个线程转变为就绪或阻塞状态。 2)就绪(Runnable):在这种状态下,只要调度器把时间片分给线程,线程就可以运行。也就是...
2018-09-09 07:47:00
103
转载 Thinking in java 之并发其二:资源共享
一、前言在单线程的情况下,我们很少去考虑资源冲突的问题。而在多线程中,单个实例的某个方法或者变量会经常出现被多个线程访问的情况。最常见的问题,在线程A访问f()进行到一半时,线程B也调用了f()方法。这自然会导致资源使用时出现我们不愿意见到的情况。比如下面这个例子。 1 public abstract class IntGenerator { 2 3 ...
2018-09-06 10:52:00
86
转载 Thinking in java 之并发其一:如何实现多线程
一、基本的线程机制java的并发编程可以将程序划分成多个分离并且能够独立运行的任务。每个独立任务都通过一个执行线程来驱动。一个线程就是在进程中的一个单一的顺序控制流,因此,单个进程可以拥有多个并发执行的任务。在运行时,CPU将轮流给每个任务分配其占用时间。二、定义任务在java中,定义一个任务的方式是实现“Runnable”接口,并且实现 “Runnable” 接口的 run...
2018-08-30 17:14:00
88
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人