- 浏览: 49068 次
- 性别:
文章列表
很多时候我们要批量插入或者更新数据,很多人一般的做法就是在java逻辑bean中,循环批量的数据,一条一条插入。
现在介绍下mybatis的批量插入,即传入一个List类型的参数。
java类(逻辑类):假设我循环插入10条数据,在逻辑类中我模拟作了一个List。
SampleUser sampleUser = null;
List<SampleUser> insertList = new ArrayList<SampleUser>();
for (int i = 0; i < 10; i++) {
sampleUser = ne ...
以前做过的一个spring mvc框架的配置,最开始的时候全部是xml配置,事务管理没有问题,用的是拦截器那种。现在修改框架,为了使用方便,修改了配置文件,发现事物管理不好用了,求大神赐教。
我输出注入action的service,看到控制台的信息不是代理类的信息,是service本身类信息(LoginServiceImpl@19b4c30)。说明,事务没有加入到service。
也不想全部使用annonation,这样开发的时候,还需要给类或者方法追加annonation标记。
xml如下:applicationContext.xml
<?xml version=&qu ...
spring AOP (8)
- 博客分类:
- spring AOP (8)
下面所有代码和示例仅仅是为了讲解spring aop,不能用于实际开发,因为实际没有这样用的,但是看看,理解下肯定是有好处的。
示例:对于更新或者删除用户来说,我们要进行事务管理,更新或删除之前要打开事务,之后要提交事务。
这里以更新来作为示例。
spring可以利用jdk或cglid来生成动态代理,我们直接利用cglib对类进行代理,不创建interface了。
UserService:
package spring3.aop.aop1;
public class UserService {
public void updUser() {
System.o ...
前面我们说过jdk代理和cglib代理了,研究表明,谁研究的我也不知道哈,
cglib所创建的动态代理对象的性能比jdk所创建的动态代理对象的性能高很多(10倍左右),但cglib在创建动态代理对象时所花费的时间比jdk要多(8倍),,所以对于单实例的代理对象或者具有实例池的代理对象,因为不需要频繁的创建代理对象,所以比较适用cglib动态代理对象;需要频繁的创建代理对象的,则适合用jdk动态代理对象。
spring两种技术都运用了。
增强:spring 适用它来创建横切逻辑(比如事务),spring只支持方法连接点,所以增强既包含了横切逻辑代码,也包含了连接点的部分信息(即在方法 ...
JDK的动态代理只能针对接口来实现,由Proxy.newProxyInstance()第二个参数能很清楚地意识到这一点。面向接口编程肯定有它自己的好处,但是如果很小很小的一个项目,我们要对每个业务类创建一个接口,也并不一定是件好事吧。
如果不创建接口,而要实现代理,我们需要用到cglib,它是一个第三方的jar包,需要额外导入。
cglib采用非常底层的字节码技术,可以为代理对象创建一个子类,并且在子类中采用方法拦截的技术,拦截所有父类方法的调用,并且织入横切逻辑。
注意,既然是为父类创建一个子类,那么final修饰的方法是不能继承的,所以final修饰的方法是不会被织入横切逻辑的。
...
在「spring AOP (4) 基础知识-代理」中给大家讲解了什么是代理,有什么弊端。
java的动态代理比代理的思想更前进了一步。
首先我们要创建一个代理类,它必须实现java.lang.reflect.InvocationHandler接口。
DynamicProxyHandler:
package spring3.aop.aop3;
import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;
public class DynamicProxyHandler imp ...
想换工作了,不知道有没有公司要呢?
现在大连软件太不注重技术了,过于注重语言,语言只不过是技术的一个工具,过度看好语言,那直接让外语系的来做计算机好了,为什么要招计算机毕业的呢?长此这样下去,公司肯定会没落,单纯的外包已经不适合现在的环境了,解决方案和产品才是真正的出路。没有经验的外语人才能提出好的解决方案吗?干一个项目砸一个项目,我真心无语了。不知道怎么想的,整个项目组找不到几个编码的,全是测试人员和式样理解人员,那pg怎么发展???
我以前不愿意带项目,现在更不想了。
se在我意识里,始终认为是pg经验足了,外语也到了一定水平了,才升为se,现在可好,招个外语系的就是se,能指导p ...
这篇文章主要讲解java的基础知识--代理。
代理其实是一种设计模式,下面的讲解是参照<<Java编程思想>>的内容。
我们先举个简单的示例来阐述什么是代理。
假如我们有一个接口Interface。
package spring3.aop.aop2;
public interface Interface {
public void do1();
public void do2(String str);
}
我们在定义一个真实的类Target,来实现我们的接口Interface
package spring3.aop.aop2;
...
spring AOP (3)
- 博客分类:
- spring AOP (3)
继续讲spring的术语:
增强:其实就是一段程序代码,比如管理事务的代码,在spring中,增强除了描述一段代码外,还可以描述执行点的方位(在前或者后),所以spring的增强接口都带方位名:BeforeAdvice,AfterAdvice,AfterReturningAdvi ...
spring AOP (2)
- 博客分类:
- spring AOP (2)
在spring AOP (1)中我举了个示例,我们可以看出业务逻辑(对user的操作)和非业务逻辑(事务操作)混合在一起。
利用aop,我们可以将业务逻辑和非业务逻辑分离开,但这不是最神奇的,最神奇的是,把分离开的非业务逻辑在合 ...
spring AOP (1)
- 博客分类:
- spring AOP (1)
aop到底是什么东西呢?和oop有什么关系呢,可以取代oop吗?
oop是面向对象编程,你可以简单的认为:世界万物都是一个对象,你编写的代码只不过是对这些对象属性以及它动作的描述。
java的思想,其中一个特性是继承。就是把子类相同的动作或者属性抽出到父类,子类可以沿用父类的属性或者方法,也可以重写父类的方法。这样可以避免代码重复。
这里你可以思考下重写和重载的区别,温故而知新。(重载只一个类来说的,重写是对父类和子类来说的)
但是仅仅用继承有时候还达不到要求。
比如下面的例子,只是一个示例而已。
UserService
package spring3.aop.aop1; ...
spring事件(二)
- 博客分类:
- spring事件(二)
我们模拟邮件发送来讲解事件的整个过程。
我们要讲解事件,首先我们需要定义一个事件。
MailSendEvent.java
package spring3.event.mailSend;
import org.springframework.context.ApplicationContext;
import org.springframework.context.event.ApplicationContextEvent;
public class MailSendEvent extends ApplicationContextEvent {
private ...
spring事件(一)
- 博客分类:
- spring事件(一)
在事件体系中,有5个重要概念:
事件源 ⇒ 事件 ⇒ 时间广播器 ⇒ 事件监听器注册表(事件监听器)。
事件监听器注册表是保存事件监听器的地方。
spring的事件类结构
事件类:ApplicationEvent(Object source)ApplicationEvent 继承了java.util.EventObject,
有两个子类:ApplicationContextEvent和RequestHandledEvent。
ApplicationContextEvent有四个子类:ContextStartedEvent(容器启动), ...
可能会很长时间写不了博客了
- 博客分类:
- 可能会很长时间写不了博客了
最近一起带两个项目,一个php,一个imart8.0。
以后有时间再写吧。
天天加班,还好只是和客户或者bse交流,这边呢,指导下技术方面。
不参与实际编码,就是累。一会php,一会java,哈哈
脑袋在飞快运转。
今天开始带两个实习生做php(1)的框架个人觉得太垃圾了,于是重新写了一个。
首先是index.php,工程的入口。
index.php
<?php
$url = 'app/login/Controller/LoginController.php?m=init';
?>
<html>
<head>
<meta http-equiv="refresh" content="0;url=<?php echo $url; ?>">
</head> ...