文档章节

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

光石头
 光石头
发布于 2012/12/14 13:21
字数 380
阅读 1713
收藏 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);
	
	
}

© 著作权归作者所有

共有 人打赏支持
光石头

光石头

粉丝 317
博文 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报错捏
javaweb的框架和轻量级架构解决方案

看来oscer的讨论,我也把我的思路写出来吧. 文章的范围是 java web,并不是j2ee,主要是我很少接触EJB,对EJB没有发言权.废话少说,现在开扒. 说起java框架那是锣鼓喧天鞭炮齐鸣,纷纷色色,层次不穷...

光石头
2013/09/04
6.6K
28
刚刚看到iteye上有帖子讨论spring也许正成为一个ejb

其实本人也有这种感觉 spring变的越来越臃肿、庞大,不再小巧 配置文件满天飞(虽然也有基于注解的模式,但是考虑到项目管理大家还是会用配置文件管理吧) 所以能像和大家探讨一下 我突然想到...

戴威
2011/04/15
377
10
会不断更新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

没有更多内容

加载失败,请刷新页面

加载更多

进程管理利器Supervisor--centos7下安装与卸载

目录 概述 环境准备 检查python环境 在线安装 配置Supervisor 启动并验证 概述 Supervisor的安装可以有在线安装和离线安装两种方式。安装方式取决于服务器是否联网,联网的话可采用在线安装,...

java_龙
11分钟前
2
0
spring系列汇总

spring spring-基于可扩展Schema的特性自定义标签 springmvc-同一个访问资源,多种视图解析方式 spring cache 配置使用aspectj模式织入 基于注解的spring缓存,轻松无侵入解决cache问题 spri...

细肉云吞
12分钟前
1
0
vsftpd搭建ftp

12月10日任务 14.4 exportfs命令 14.5 NFS客户端问题 15.1 FTP介绍 15.2/15.3 使用vsftpd搭建ftp exportfs命令 在nfs运行后的一段时间内,如果需要添加共享目录,这时需要修改exports文件,并...

robertt15
14分钟前
2
0
numpy常用操作

水平合并数组 import numpy as npa = [1,2,3]b = [4,5,6]np.hstack((a,b))# array([1, 2, 3, 4, 5, 6])c = [a,['a','b','c']]d = [b,['d','e','f']]np.hstack((c,d))#array([['1'......

datadev_sh
31分钟前
4
0
四种检测异常值的常用技术简述

摘要: 本文介绍了异常值检测的常见四种方法,分别为Numeric Outlier、Z-Score、DBSCAN以及Isolation Forest 在训练机器学习算法或应用统计技术时,错误值或异常值可能是一个严重的问题,它们...

阿里云官方博客
34分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部