文档章节

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

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

© 著作权归作者所有

光石头

光石头

粉丝 326
博文 96
码字总数 21505
作品 5
郑州
技术主管
私信 提问
加载中

评论(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的官方推荐。但是,我问了三个问题,他都答不出来,感觉能写篇博文。 官方为什么推荐构造器注入? 构造器注入和属性注入的区别是啥? 你知道有几种...

osc_6bjpmnwf
2019/02/18
3
0
springboot---简介

目录 why 1.EJB—>Spring 随着java的流行,EJB(Enterprise Java Beans)作为Java企业级应用开发渐入人们的视线,但是由于其设计的复杂性,所以在J2EE架构中的表现一直不是很好,正当Java开发...

杨光彩-sunny
04/01
0
0
javaweb的框架和轻量级架构解决方案

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

光石头
2013/09/04
6.8K
28
SpringCloud学习之Zuul路由转发、拦截和熔断处理(七)

Spring Cloud Zuul 服务网关是微服务架构中一个不可或缺的部分。通过服务网关统一向外系统提供REST API的过程中,除了具备服务路由、均衡负载功能之外,它还具备了权限控制等功能。 Spring C...

osc_qfhvspaw
01/18
5
0
面试阿里P7Java岗被问原理源码,还好我有这一份框架源码PDF

Spring 框架自诞生以来一直备受开发者青睐,有人亲切的称之为:Spring 全家桶。它包括 SpringMVC、SpringBoot、Spring Cloud、Spring Cloud Dataflow等解决方案。 很多研发人员把 Spring 看作...

马士兵老师
05/22
0
0

没有更多内容

加载失败,请刷新页面

加载更多

如何制作出色的R可重现示例 - How to make a great R reproducible example

问题: This post is a Community Wiki . 这篇文章是社区维基 。 Edit existing answers to improve this post. 编辑现有答案以改善此职位。 It is not currently accepting new answers. 它......

技术盛宴
19分钟前
24
0
windows下修改默认mysql编码

查看编码格式: 进入mysql执行下面语句 show variables like '%character%'; 修改编码格式: set character_set_client=utf8;set character_set_connection=utf8;set character_set_da......

珞木橘子
24分钟前
21
0
ArrayList与LinkList性能对比----新增元素

在聊到 ArrayList 和 LinkList 的时候都会这么说 ArrayList 底层是基于数组实现的内存地址物理上是连续的,新增,删除效率低,查询效率高 LinkList 是基于链表实现的,逻辑地址是连续的内存地...

Lbj虞
45分钟前
34
0
Nginx

想了解nginx的代理可以先看这篇: https://baijiahao.baiducom/s?id=1652608869911988442&wfr=spider&for=pc nginx常用命令 nginx -t ##检查配置文件,一般修改完配置文件都建议一定先执行这...

UItraman
昨天
24
0
新基建的福音:智慧楼宇可视化监控系统引领智能化新时代

前言 智慧楼宇和人们的生活息息相关,楼宇智能化程度的提高,会极大程度的改善人们的生活品质,在当前工业互联网大背景下受到很大关注。目前智慧楼宇可视化监控的主要优点包括: 智慧化 -- 智...

xhload3d
昨天
19
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部