Fork me on GitHub

网易云的MV下载

最近想把自己喜欢的MV放在个人站点上面,但是Mac客户端和网页版的网易云连个下载按钮都没有!好吧, 是时候自己动手…丰衣足食了,网页上能播放出来的肯定是能拿到的,最神奇最稳定的办法当然是开启录屏软件啦。但是本次为了播放效果,能不用最低端的方式就尽量不用啦!

很久没写过IO方面的东西了,现在拿这个例子来练练手:

mark

阅读更多...

Spring入门笔记(三)

SpringAOP

AOP前奏

SpringAOP是面向切面编程,那么我们先来看看那什么是面向切面编程,首先看一个例子,假设我们有一个计算类的接口AtithmeticCalculator,有一个实现类AtithmeticCalculatorImpl:
mark

  • 需求1-日志:在程序执行期间追踪正在发生的活动
  • 需求2-验证:希望计算器只能处理正数的运算
阅读更多...

Spring入门笔记(二)

SpringBean之间的关系

1、SpringBean之间的继承

假设现有一个Address类表示地点:

1
2
3
4
5
6
7
package com.xpu.bean;

public class Address {
private String city;
private String street;
setter()/getter()....
}

现在如何需要两个对象,则可以这写:

1
2
3
<bean id="address1" class="com.xpu.bean.Address" p:city="Xian" p:street="Wulukou"></bean>

<bean id="address2" class="com.xpu.bean.Address" p:city="Xian" p:street="Beidajie"></bean>

但是这样写如果在类属性过多的时候就不是很好用了,所以,出现了配置之间的继承关系,但是这个和类之间的继承不是一回事:

1
2
3
4
<bean id="address1" class="com.xpu.bean.Address" p:city="Xian" p:street="Wulukou"></bean>

<!-- 配置之间的继承关系 :使用bean的parent属性指定-->
<bean id="address2" p:street="Beidajie" parent="address1"></bean>

Spring 允许继承 bean 的配置, 被继承的 bean 称为父 bean. 继承这个父 Bean 的 Bean 称为子 Bean,子 Bean 从父 Bean 中继承配置, 包括 Bean 的属性配置,子 Bean 也可以覆盖从父 Bean 继承过来的配置,父 Bean 可以作为配置模板, 也可以作为 Bean 实例。 若只想把父 Bean 作为模板, 可以设置 的abstract 属性为 true, 这样 Spring 将不会实例化这个 Bean:

1
2
<-- 抽象bean不能被IOC容器实例化,只能用继承配置 -->
<bean id="address1" class="com.xpu.bean.Address" abstract="true"></bean>

一旦这样配置之后这个配置是不能实例化出对象的,而需要配置出他的子配置,否则就无法创建对象,若某一个bean的class未指定,那么该bean必须是一个抽象bean,可以忽略父 Bean 的 class 属性,让子 Bean 指定自己的类,而共享相同的属性配置。但此时 abstract 必须设为 true,并不是 元素里的所有属性都会被继承. 比如: autowire, abstract

阅读更多...

Hibernate

mark

持久化

即把数据(如内存中的对象)保存到可永久保存的存储设备中(如磁盘)。持久化的主要应用是将内存中的数据存储在关系型的数据库中,当然也可以存储在磁盘文件中、XML数据文件中等等,那么什么是持久层(Persistence Layer),即专注于实现数据持久化应用领域的某个特定系统的一个逻辑层面,将数据使用者和数据实体相关联。

持久化是将程序数据在持久状态和瞬时状态间转换的机制。比如JDBC就是一种持久化机制。文件IO也是一种持久化机制。

广义的理解,”持久化”包括和数据库相关的各种操作:
保存:把对象永久保存到数据库中。
更新:更新数据库中对象(记录)的状态。
删除:从数据库中删除一个对象。
查询:根据特定的查询条件,把符合查询条件的一个或多个对象从数据库加载到内存中。
加载:根据特定的OID,把一个对象从数据库加载到内存中

阅读更多...

Spring入门笔记(一)

Spring框架是由于软件开发的复杂性而创建的。Spring使用的是基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅仅限于服务器端的开发。从简单性、可测试性和松耦合性角度而言,绝大部分Java应用都可以从Spring中受益!

阅读更多...

MyBatis(二)

mark

作用域(Scope)和生命周期

SqlSessionFactoryBuilder这个类可以被实例化、使用和丢弃,一旦创建了 SqlSessionFactory,就不再需要它了。因此 SqlSessionFactoryBuilder 实例的最佳作用域是方法作用域(也就是局部方法变量)。你可以重用 SqlSessionFactoryBuilder 来创建多个 SqlSessionFactory 实例,但是最好还是不要让其一直存在以保证所有的 XML 解析资源开放给更重要的事情。

阅读更多...

MyBatis(一)

MyBatis简介

首先说一下MyBatis是什么?MyBatis就是下图中的鸟,哈哈!
mark
MyBatis是一款优秀的持久层框架,它支持定制化SQL、存储过程以及高级映射。MyBatis避免了几乎所有的JDBC代码和手动设首参数以及获取结果集。MyBatis可以使用简单的XML或注解来配罝和映射原生信息,将接口和Java的POJOs(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录

MyBatis和Hibernate一样,是一个ROM框架(Object Relational Mapping,是对象到关系的映射,是一种解决实体对象与关系型数据库相互匹配的技术,它的实现思想就是将数据库中数据表映射成为对象,对关系型数据以对象的形式进行操作。在软件开发中,对象和关系数据是业务实体的两种表现形式,ORM通过使用描述对象和数据库之间映射的元数据,将对象自动持久化到关系数据库中。

MyBatis相对于Hibernate来说更加轻量级,所以MyBatis其实不具备像Hibernate那样自动建表的功能,但是MyBatis现在对我来说足够用了,现在开始记录一下学习MyBatis过程中遇到的问题或者MyBatis的知识点!

阅读更多...

理解Java内存模型

网上有很多关于Java内存模型的文章,在《深入理解Java虚拟机》和《Java并发编程的艺术》等书中也都有关于这个知识点的介绍。但是,很多人读完之后还是搞不清楚,甚至有的人说自己更懵了。本文,就来整体的介绍一下Java内存模型,目的很简单,让你读完本文以后,就知道到底Java内存模型是什么,为什么要有Java内存模型,Java内存模型解决了什么问题等。

阅读更多...

了解并使用Maven

前言

如果你经常使用第三方jar包的话(前提是你现在不会Maven),那么那些jar包可能会让我们有点难受,下面是一个示例:

mark

假设你的工程需要这么多的Jar包(当然可能远远不止这些),那么Jar是非常难以维护的,有些Jar包又依赖于另一些Jar包,版本也不一样,更难受的是如果你的电脑是固态硬盘、固态硬盘、固态硬盘、,那么容量就不像机械硬盘那么阔气,于是本人想了一个好办法,就是把需要要用到的Jar包放在一起,要用的时候就去复制粘贴到项目的lib中,右键add build path 简直完美!!!

阅读更多...

浏览器User agent里的历史故事

故事还得从头说起,最初的主角叫NCSA Mosaic,简称Mosaic(马赛克),是1992年末位于伊利诺伊大学厄巴纳-香槟分校的国家超级计算机应用中心(National Center for Supercomputing Applications,简称NCSA)开发,并于1993年发布的一款浏览器。它自称“NCSA_Mosaic/2.0(Windows 3.1)”,Mosaic可以同时展示文字和图片,从此浏览器变得有趣多了。

阅读更多...
  • © 2018-2020 changlin zou
    • Page View:
    • Unique Visitor:

请我喝杯咖啡吧~

支付宝
微信