文档章节

再说spring比较重,臃肿的看此文!!!!!

光石头
 光石头
发布于 2012/12/14 13:21
字数 380
阅读 1711
收藏 13

 

springrain地址:http://git.oschina.net/chunanyong/springrain

spring的强大灵活+jfinal的开发效率!

我的博客:http://www.weicms.net/2012/12/14/spring_super.html

 

在ssh中,我认为spring是唯一值得用的框架

spring mvc 的优点可以自行在网络搜索,特别是3.0之后......我不认为spring 的controller会比其他的差!!!!

spring的良好的扩展性,集成度,IOC,AOP事务,已经是项目的基础条件

我实在无法忍受各种软文说spring 太厚重,臃肿了.以下代码是我的测试用例.我还真是没明白,spring复杂到哪了!!!

controller service  dao Entity 都使用注解,就极简而言,一个数据库只需要一个Dao,一个Service 而已!!!

//就极简而言,一个数据库只需要一个Service,就可以查询这个数据库的任意一张表
//@Test 返回一个基本类型
public void testObject() throws Exception{
	Finder finder=new Finder("select id from [Users] where 1=1 ");
	finder.append("and userId=:userId").setParam("userId", 125);
Integer id = baseFangService.queryForObject(finder, Integer.class);
System.out.println(id);

}


//@Test 返回一个Entity
public void testObjectUser() throws Exception{
	Finder finder=new Finder("select * from Users where id=125 order by id");
	Users u = baseFangService.queryForObject(finder, Users.class);
    System.out.println(u.getName());

}
//@Test 调用存储过程并返回 Map
public void testProc() throws Exception{
	Finder finder=new Finder();
	finder.setParam("unitId", 0);
	finder.setProcName("proc_myproc");
	Map queryObjectByProc = (Map) baseFangService.queryObjectByProc(finder);
	System.out.println(queryObjectByProc.get("#update-count-10"));
	
}
//@Test 调用数据库函数,并返回结果
public void testFunction() throws Exception{
	Finder finder=new Finder();
	
	finder.setFunName("fun_userId");
	finder.setParam("userId", 125);
	String userName= baseFangService.queryForObjectByByFunction(finder,String.class);
	System.out.println(userName);
	

}

//@Test  保存一个对象
public void testRoleModel() throws Exception{
		Re_Role_Model re=new Re_Role_Model();
		re.setRoleId("user");
		re.setBool(1);
		baseFangService.save(re);
	
	
}

© 著作权归作者所有

共有 人打赏支持
光石头

光石头

粉丝 318
博文 92
码字总数 17546
作品 2
郑州
程序员
加载中

评论(18)

哈库纳
哈库纳
Spring 本身不臃肿,觉得它臃肿是由于在分析 Spring 代码时候感觉上层次过深而导致的,这个问题是思维习惯和思维方式导致的。

国内人没有那种全部面向接口编程的习惯,所以觉得 Spring 代码臃肿。说到底是文化不同导致的。

不过个人觉得,Spring 本身已经是一套非常完备的体系。真的没有必要在进行二次封装。我是从两个方面考虑的:
1.Spring 本身提供了一种编程方式,遵循约定的编程方式可以极大的减少开发成本。二次封装之后相当于为开发者又提供了另外一套编程风格,这会使开发者陷入两套编程方式的思维混乱。
2.Spring 已经很完备,包括IDE在内都已经形成一整套体系,真的没有必要在进行二次封装。目前个人觉得有价值的也就是 @江南白衣 的 JavaEE参考示例 SpringSide
光石头
光石头

引用来自“Roger蛋蛋”的评论

已解决,class下没有编译,新建工程就好了

0.2版本发布了,重大更新!!
光石头
光石头

引用来自“唐海康”的评论

博主这是反讽的意思吗……这么多的代码你不觉得太长太多了吗……

请教你的系统总共几行代码啊?
唐海康
唐海康
博主这是反讽的意思吗……这么多的代码你不觉得太长太多了吗……
光石头
光石头

引用来自“Roger蛋蛋”的评论

已解决,class下没有编译,新建工程就好了

我目前的版本结合代码脚手架,已经可以直接生成常用功能了,过几天再发上去吧
南湖船老大
南湖船老大
已解决,class下没有编译,新建工程就好了
南湖船老大
南湖船老大
原样导入后报错了
SEVERE: Exception sending context destroyed event to listener instance of class org.springframework.web.context.ContextLoaderListener
java.lang.IllegalStateException: BeanFactory not initialized or already closed - call 'refresh' before accessing beans via the ApplicationContext
  at org.springframework.context.support.AbstractRefreshableApplicationContext.getBeanFactory(AbstractRefreshableApplicationContext.java:172)
  at org.springframework.context.support.AbstractApplicationContext.destroyBeans(AbstractApplicationContext.java:1078)
  at org.springframework.context.support.AbstractApplicationContext.doClose(AbstractApplicationContext.java:1052)
  at org.springframework.context.support.AbstractApplicationContext.close(AbstractApplicationContext.java:1000)
  at org.springframework.web.context.ContextLoader.closeWebApplicationContext(ContextLoader.java:548)
  at org.springframework.web.context.ContextLoaderListener.contextDestroyed(ContextLoaderListener.java:142)
  at org.apache.catalina.core.StandardContext.listenerStop(StandardContext.java:4831)
  at org.apache.catalina.core.StandardContext.stopInternal(StandardContext.java:5478)
  at org.apache.catalina.util.LifecycleBase.stop(LifecycleBase.java:232)
  at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:160)
  at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1559)
  at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1549)
  at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
  at java.util.concurrent.FutureTask.run(Unknown Source)
  at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
  at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
  at java.lang.Thread.run(Unknown Source)
xmqywx
xmqywx

引用来自“屁屁果”的评论

引用来自“xmqywx”的评论

博客登不上了,502报错捏

嗯,感谢 gfw.

加个jfinal的标签吧,很有学习意义
光石头
光石头

引用来自“xmqywx”的评论

博客登不上了,502报错捏

嗯,感谢 gfw.
xmqywx
xmqywx
博客登不上了,502报错捏
会不断更新spring方面的博文,还请大家多多关注!

之前使用spring,发掘用起来越来越臃肿。现在有个想法,把spring里面的核心功能抽出来,自己开发一个mini版的,省去平时用的少的部分,然后提供上来给大家看看。现在的想法是轮子尽量造,争取...

loda0128
2015/06/08
0
4
怎么使用Spring配置事务 ?

Spring同时支持编程式事务策略和声明式事务策略,大部分时候都采用声明式事务策略。 声明式事务管理的配置方式,通常有以下4种: (1) 使用TransactionProxyFactoryBean为目标Bean生成事务代理...

a'ゞ浪人گق
08/09
0
0
(一)SpringBoot——helloworld

一、为什么会诞生SpringBoot? 先看看spring的优势: 1、代码解耦、简化开发:代码中不再需要new去构造对象,而是交由spring去管理对象。 2、支持AOP:面向切面的编程,方便进行权限拦截、日...

solidwang
04/17
0
0
Spring Boot 和 Grails 的不同点

最近花了些时间了解了一下 Spring Boot 这个新框架。这个框架提供了快速开发基于 Spring Framework 的应用的功能。同样,SpringSource 旗下还有另一个用于 Web 应用快速开发的框架,就是 Gr...

编走编想
2014/05/02
0
0
Springboot 打jar包分离lib,配置文件正确方式(二)

Springboot 打jar包分离lib,配置文件正确方式(二) 背景 从《Springboot 打jar包分离lib,配置文件正确方式》中,可以达到把配置文件和依赖第三方的jar包分离开,但稍显有点臃肿,今天再次...

小祝特烦恼
08/23
0
0

没有更多内容

加载失败,请刷新页面

加载更多

CentOS7防火墙firewalld操作

firewalld Linux上新用的防火墙软件,跟iptables差不多的工具。 firewall-cmd 是 firewalld 的字符界面管理工具,firewalld是CentOS7的一大特性,最大的好处有两个:支持动态更新,不用重启服...

dingdayu
今天
1
0
关于组件化的最初步

一个工程可能会有多个版本,有国际版、国内版、还有针对各种不同的渠道化的打包版本、这个属于我们日常经常见到的打包差异化版本需求。 而对于工程的开发,比如以前的公司,分成了有三大块业...

DannyCoder
今天
2
0
Spring的Resttemplate发送带header的post请求

private HttpHeaders getJsonHeader() { HttpHeaders headers = new HttpHeaders(); MediaType type = MediaType.parseMediaType("application/json; charset=UTF-8"); ......

qiang123
昨天
3
0
Spring Cloud Gateway 之 Only one connection receive subscriber allowed

都说Spring Cloud Gateway好,我也来试试,可是配置了总是报下面这个错误: java.lang.IllegalStateException: Only one connection receive subscriber allowed. 困扰了我几天的问题,原来...

ThinkGem
昨天
27
0
学习设计模式——观察者模式

1. 认识观察者模式 1. 定义:定义对象之间一种一对多的依赖关系,当一个对象状态发生变化时,依赖该对象的其他对象都会得到通知并进行相应的变化。 2. 组织结构: Subject:目标对象类,会被...

江左煤郎
昨天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部