仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 629|回复: 13
打印 上一主题 下一主题

[学习教程] JAVA网站制作之Spring框架解说-一个复杂的理论

[复制链接]
若相依 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-18 11:14:47 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
在1995年5月23日以“Java”的名称正式发布了。一,场景:编写一个用户办理的服务层,包含增添用户、删除用户和查询用户等等,并且用户信息以干系型数据库情势存储。
剖析:
这是一个典范的使用服务,触及到营业层(BusinessObjectsLayer)、数据库会见层(DBAccess)和存储层(EIS)。
接纳典范的架构:BO+DAO
DAO接纳Spring供应的JdbcTemplate来举行封装。
二,详细完成
1)用户类User
publicclassUser{
privateStringusername;
privateStringemail;
privateDatebirthday;
publicUser(){}

响应的setter/getter办法。
}
这是一个复杂的bean类,纪录用户的信息。

2)数据库会见类:UserDao
publicinterfaceUserDao{
publicvoidsave(Useruser);
publicvoidremove(Stringusername);
publicUsersearchByName(Stringusername);
}
这是数据库会见的接口类,界说了对用户的数据库操纵,实在现类是UserDaoJdbc

UserDaoJdbc类
publicclassUserDaoJdbcextendsJdbcDaoSupportimplementsUserDao{
publicUserDaoJdbc(){
super();
}
publicvoidsave(Useruser){
getJdbcTemplate().update(
"insertintoSAMPLE_USERvalues(?,?,?)",
newObject[]{user.getUsername(),user.getEmail(),
user.getBirthday()});
}
...
}
3)营业类UserManageService
publicinterfaceUserManageService{
publicvoidsaveUser(Useruser);
publicvoidremoveUser(Stringusername);
publicUsergetUserByName(Stringusername);
}
这是用户的营业类接口,界说了和用户相干的一些营业操纵,实在现类UserManageServiceImpl
完成类UserManageServiceImpl
publicclassUserManageServiceImplimplementsUserManageService{
privateUserDaoudao;
publicUserManageServiceImpl(){
super();
}

publicvoidsaveUser(Useruser){
udao.save(user);
}
publicUserDaogetUdao(){
returnudao;
}
publicvoidsetUdao(UserDaoudao){
this.udao=udao;
}
}
4)Springbean形貌文件设置
<beans>
<beanid="dataSource"class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<propertyname="driverClassName">
<value>oracle.jdbc.driver.OracleDriver</value>
</property>
<propertyname="url">
<value>jdbc:oracle:thin:@172.16.4.219:1521:orcl</value>
</property>
<propertyname="username">
<value>zhangbo</value>
</property>
<propertyname="password">
<value>password</value>
</property>
</bean>
<beanid="transactionManager"class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<propertyname="dataSource">
<refbean="dataSource"/>
</property>
</bean>
<beanid="userdao"class="sample.spring.dao.UserDaoJdbc">
<propertyname="dataSource">
<refbean="dataSource"/>
</property>
</bean>
<beanid="userManageService"class="sample.spring.service.UserManageServiceImpl">
<propertyname="udao">
<refbean="userdao"/>
</property>
</bean>
</beans>
5)数据中存储用户的表SAMPLE_USER
usernamevarchar2(30)notnull,
emailvarchar2(50)notnull,
birthdaydate
6)经由过程单位测试来考证UserManageService中的操纵:
publicclassUserManageServiceTestextendsTestCase{
privateUserManageServiceservice;
privatestaticLoglogger=LogFactory.getLog(UserManageServiceTest.class);
protectedvoidsetUp()throwsException{
super.setUp();
service=(UserManageService)SpringContextUtil
.getBean("userManageService");
}
publicvoidtestSaveAndSearchAndRemoveUser()throwsException{
Useruser=newUser();
user.setUsername("zhangsan");
user.setEmail("zhangsan@test.com");
user.setBirthday(newDate());
service.saveUser(user);
logger.debug("存进一个新用户:"+user);
UseruserFromDb=service.getUserByName("zhangsan");
assertNotNull(userFromDb);
assertEquals(userFromDb.getEmail(),"zhangsan@test.com");
logger.debug("从数据库中查到用户:"+userFromDb);
service.removeUser("zhangsan");
logger.debug("从数据库删除用户:"+userFromDb);
}
protectedvoidtearDown()throwsException{
super.tearDown();
}
}

再举这样一个例子:如果你想对一个数字取绝对值,你会怎么做呢?java的做法是intc=Math.abs(-166);而ruby的做法是:c=-166.abs。呵呵,这就看出了java与ruby的区别。
海妖 该用户已被删除
沙发
发表于 2015-1-19 13:08:31 来自手机 | 只看该作者
是一种为 Internet发展的计算机语言
深爱那片海 该用户已被删除
板凳
发表于 2015-1-24 12:42:59 | 只看该作者
Jive的资料在很多网站上都有,大家可以找来研究一下。相信你读完代码后,会有脱胎换骨的感觉。遗憾的是Jive从2.5以后就不再无条件的开放源代码,同时有licence限制。不过幸好还有中国一流的Java程序员关注它,外国人不开源了,中国人就不能开源吗?这里向大家推荐一个汉化的Jive版本—J道。Jive(J道版)是由中国Java界大名 鼎鼎的banq在Jive 2.1版本基础上改编而成, 全中文,增加了一些实用功能,如贴图,用户头像和用户资料查询等,而且有一个开发团队在不断升级。你可以访问banq的网站
精灵巫婆 该用户已被删除
地板
发表于 2015-1-25 14:49:43 | 只看该作者
Java 不同于一般的编译执行计算机语言和解释执行计算机语言。它首先将源代码编译成二进制字节码(bytecode),然后依赖各种不同平台上的虚拟机来解释执行字节码。从而实现了“一次编译、到处执行”的跨平台特性。
只想知道 该用户已被删除
5#
发表于 2015-1-29 19:33:54 | 只看该作者
多重继承(以接口取代)等特性,增加了垃圾回收器功能用于回收不再被引用的对象所占据的内存空间,使得程序员不用再为内存管理而担忧。在 Java 1.5 版本中,Java 又引入了泛型编程(Generic Programming)、类型安全的枚举、不定长参数和自动装/拆箱等语言特性。
第二个灵魂 该用户已被删除
6#
发表于 2015-1-30 05:50:29 | 只看该作者
学Java必读的两个开源程序就是Jive和Pet Store.。 Jive是国外一个非常著名的BBS程序,完全开放源码。论坛的设计采用了很多先进的技术,如Cache、用户认证、Filter、XML等,而且论坛完全屏蔽了对数据库的访问,可以很轻易的在不同数据库中移植。论坛还有方便的安装和管理程序,这是我们平时编程时容易忽略的一部份(中国程序员一般只注重编程的技术含量,却完全不考虑用户的感受,这就是我们与国外软件的差距所在)。
分手快乐 该用户已被删除
7#
发表于 2015-2-4 21:20:46 | 只看该作者
象、泛型编程的特性,广泛应用于企业级Web应用开发和移动应用开发。
爱飞 该用户已被删除
8#
发表于 2015-2-9 03:54:02 | 只看该作者
是一种为 Internet发展的计算机语言
简单生活 该用户已被删除
9#
发表于 2015-2-11 00:26:54 | 只看该作者
是一种突破用户端机器环境和CPU
冷月葬花魂 该用户已被删除
10#
发表于 2015-2-11 20:50:46 | 只看该作者
J2SE开发桌面应用软件比起 VC,VB,DEPHI这些传统开发语言来说,优势好象并不明显。J2ME对于初学者来说,好象又有点深奥,而且一般开发者很难有开发环境。
乐观 该用户已被删除
11#
发表于 2015-2-24 05:46:47 | 只看该作者
是一种使网页(Web Page)由静态(Static)转变为动态(Dynamic)的语言
谁可相欹 该用户已被删除
12#
发表于 2015-3-6 15:45:54 | 只看该作者
还好,SUN提供了Javabean可以把你的JSP中的 Java代码封装起来,便于调用也便于重用。
再现理想 该用户已被删除
13#
发表于 2015-3-13 04:02:46 | 只看该作者
你快去找一份Java的编程工作来做吧(如果是在校学生可以去做兼职啊),在实践中提高自己,那才是最快的。不过你得祈祷在公司里碰到一个高手,而且他 还愿意不厌其烦地教你,这样好象有点难哦!还有一个办法就是读开放源码的程序了。我们知道开放源码大都出自高手,他们设计合理,考虑周到,再加上有广大的程序员参与,代码的价值自然是字字珠叽,铿锵有力(对不起,偶最近《金装四大才子》看多了)。
飘飘悠悠 该用户已被删除
14#
发表于 2015-3-20 11:37:06 | 只看该作者
科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-24 07:14

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表