浅谈java spring_浅谈Spring(一)

Spring是当前比较流行的基于Java语言的MVC框架,所谓框架也就是它已经实现好了诸多东西,使java开发人员能把精力尽量放在业务逻辑上.

Spring技术的特点是IOC, 即反向注入,主要应用的是XML技术和POJO(简单Java对象),Spring要达到的目的其实很简单,就是尽量简化原来Java中的地层数据访问的问题,众所周知,传统的使用Java访问地层数据库的方法是使用JDBC,如下的代码:

try{

}catch(SQLException e){

Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");/以MS SQL SERVER为例

Connection conn=DriverManager.getConnection(connurl,username,password);

Statement stmt=conn.createStatement();

ResultSet rs=stmt.executeQuery(sql);

//实现业务逻辑的代码

System.out.println("产生异常:"+e);

}

可以看到为了访问数据库,我们需要这么多多余的模式的代码,而且又要抛出不同的异常,代码可维护性比较差,而且不利于开发人员把精力投放到最终的业务逻辑上.上边的功能如果选择使用Spring实现,那就变得的非常简单了:

我们只需要培植上文的XML文件,然后在真正使用数据库时,用

ApplicationContext   ctx=new   FileSystemXmlApplicationContext("beans.xml");

DriverManagerDataSource ds=(DriverManagerDataSource)ctx.getBean("datasource");

两条语句完成数据源的获得,这就简化掉了相当多的模式代码,让我们更加关心业务逻辑的实现了~

posted on 2006-09-11 13:16 Dushengjun 阅读(858) 评论(3)  编辑  收藏 所属分类: Spring学习

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/310947.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Http Server API路由请求到web程序

引言接上文,容器内web程序一般会绑定到http://0.0.0.0:{某监听端口}或http://:{某监听端口},以确保使用容器IP可以访问到web应用。正如我们在ASP.NET Core官方镜像显示的,ASP.NET Core程序在容器内80端口监听请求This image sets the ASPNETC…

mysql 多行拼接注入_MySQL注入汇总

Mysql注释符:单行注释: # 在对URL使用过程中可能遇到Unicode编码问题,可常用%23代替多行注释:/**/单行注释: -- 此处需要注意后面存在空格,否则报错0.万能密码(基于SQL验证,SQL注入)aaa or 1#aa…

《C++ Primer》13.1.6节练习(部分)

练习13.18: #include <iostream> #include <string> using namespace std;class Employee {private:static int sn;public:Employee() {mysn sn;}Employee(const string &s) {name s;mysn sn;}const string &get_name() {return name;}int get_mysn() …

用Azure Custom Vision 零代码创建一个口罩识别模型

新冠肺炎下&#xff0c;地球是一家&#xff0c;不分国籍&#xff0c;不分种族&#xff0c;或者现在只能呆在家中&#xff0c;但是也是一种对抗疫的支持。停课不停学留在家中&#xff0c;不仅是对学生&#xff0c;对于所有人都是有用的。在现阶段&#xff0c;大家可能最需要的不…

C++拷贝构造函数调用时机分析

让我们来分析下面这段代码&#xff1a; #include <iostream> #include <string> using namespace std;class Employee {private:static int sn;public:Employee() {cout << "Employee()" << endl;mysn sn;}Employee(const string &s) …

java开发中准则怎么写_Java开发中通用的方法和准则20条

1. 不要在常量和变量中出现易混淆的字母包名全小写、类名首字母全大写、常量全部大写并下划线分割、变量采用驼峰命名等&#xff0c;这些是最基本的Java编码规范。public class TestDemo {public static void main(String[] args) {long i 1l;System.out.println("i的两倍…

百万年薪程序员的7点能力

作者介绍findyi&#xff0c;腾讯、360码农&#xff0c;前哒哒少儿英语技术VP&#xff0c;现任土豆教育CTO。几周前&#xff0c;微盟爆了个大雷&#xff0c;数据库让内部员工删库跑路。写了篇文章&#xff0c;做了一些我的判断&#xff1a;从微盟36小时故障&#xff0c;谈谈数据…

《C++ Primer》13.1.1节练习

练习13.1: 如果构造函数的第一个参数是自身类类型的引用&#xff0c;且所有其他参数&#xff08;如果有的话&#xff09;都有默认值&#xff0c;则此构造函数是拷贝构造函数。拷贝构造函数在以下几种情况下会被使用&#xff1a; ●拷贝初始化&#xff08;用定义变量&#xff09…

Java将五个整数存入整形数组_异常处理:从命令行输入5个整数,放入一整型数组,然后打印输出。。。...

从命令行输入5个整数&#xff0c;放入一整型数组&#xff0c;然后打印输出。要求&#xff1a;如果输入数据不为整数&#xff0c;要捕获输入不匹配异常&#xff0c;显示“请输入整数”&#xff1b;如果输入数据多余5个&#xff0c;捕获数组越界异常&#xff0c;显示“请输入5个整…

优秀的开发者从命名开始

有人说&#xff0c;命名能力也能体现一个程序员的基本编程素养。我很赞成这句话&#xff01;作为开发人员逃不过起名字这一关的,大到项目名、模块名&#xff0c;小到类名、方法名、参数名、参数名、变量名。而命名又对代码的质量和可读性起到很关键的决定。如何码出高质量的代码…

《C++ Primer》13.1.2节练习

练习13.6&#xff1a; 拷贝赋值运算符本身是一个重载的赋值运算符&#xff0c;定义为类的成员函数&#xff0c;左侧运算对象绑定到隐含的this参数&#xff0c;而右侧运算对象是所属类类型的&#xff0c;作为函数的参数&#xff0c;函数返回指向其左侧运算对象的引用。 当对类对…

PHP自动判断用户会员过期,php,_定时扣除用户过期积分,但平台用户量比较大,有没有好的解决方法?,php - phpStudy...

定时扣除用户过期积分&#xff0c;但平台用户量比较大&#xff0c;有没有好的解决方法&#xff1f;最近网站实行用户积分过期制度&#xff0c;只保留用户近三月积分&#xff0c;三月前未使用积分进行扣除但平台用户量比较大&#xff0c;感觉这样做会出问题&#xff0c;有没有好…

【复杂系统迁移 .NET Core平台系列】之认证和授权

源宝导读&#xff1a;微软跨平台技术框架—.NET Core已经日趋成熟&#xff0c;已经具备了支撑大型系统稳定运行的条件。本文将介绍明源云ERP平台从.NET Framework向.NET Core迁移过程中的实践经验。一、背景随着ERP的产品线越来越多&#xff0c;业务关联也日益复杂&#xff0c;…

《C++ Primer》13.1.3节练习

练习13.9: 析构函数完成与构造函数相反的工作&#xff1a;释放对象使用的资源&#xff0c;销毁非静态数据成员。从语法上看&#xff0c;它是类的一个成员函数&#xff0c;名字是波浪号接类名&#xff0c;没有返回值&#xff0c;也不接受参数。 当一个类没有定义析构函数时&…

php冒泡程序讲解,PHP冒泡排序程序代码与源代码

冒泡排序是php中众多排序中的一个最简单的排序方法了下面一聚教程小伙伴就同各位介绍一个冒泡排序的例子&#xff0c;希望能帮助到各位。冒泡排序简介&#xff1a;冒泡排序(Bubble Sort)&#xff0c;是一种计算机科学领域的较简单的排序算法。它重复地走访过要排序的数列&#…

.NET Core开发实战(第30课:领域事件:提升业务内聚,实现模块解耦)--学习笔记...

30 | 领域事件&#xff1a;提升业务内聚&#xff0c;实现模块解耦我们在领域的抽象层定义了领域事件和领域事件处理的接口IDomainEventnamespace GeekTime.Domain {public interface IDomainEvent : INotification{} }这是一个空接口&#xff0c;它只是标记出来某一个对象是否是…

《C++ Primer》8.1.2节练习

练习8.1: #include <iostream> #include <stdexcept> using namespace std;istream &f(istream &in) {int v;while (in >> v, !in.eof()) {if (in.bad())throw runtime_error("IO流错误");if (in.fail()) {cerr << "数据错误&…

mac升级php7,MAC更新自带php版本到7.0

说一下我最近更新mac自带php版本的经历&#xff0c;我是按照网上的教程更新的&#xff0c;主要参考的是这篇博客http://blog.csdn.net/takunha/article/details/52484769&#xff0c;通过Homebrew来安装&#xff0c;安装过程除了速度有点慢之外&#xff0c;其他都还算顺利。可装…

.NET 5 Preview 1的深度解读和跟进

这几天微软.NET 团队发布了.NET 5 Preview 1, 如约而至。很兴奋&#xff0c;因为.NET Core和.NET Framework终于实现了大一统&#xff0c;同时也很期待&#xff0c;期待.NET 5能给我们带来哪些好的新特性。让我们先把时间拨回到2019年...一、2019年.NET 5的提前剧透去年2019年 …

程序员羽化之路--假如需要一百万个对象

点击上方蓝字关注我们菜菜哥&#xff0c;救命呀又被产品经理砍了&#xff1f;这次搞不好真要被砍了&#xff0c;线上一个用户系统内存溢出了&#xff0c;占用内存太高了用户基数大&#xff0c;内存占用高正常高的不太正常了&#xff0c;我觉得可能和我的设计有关那说说你的用户…