刚开始学 Spring 还是有一点点小小的理解的 和大家分享一下
说到 Spring 先说说 Spring 的优点吧
1 首先 Spring 是个开源的轻量级的,免费的框架 .( 轻量级框架与重量级框架的区别大家别忘了复习哦! )
2 Spring 提供的是对对象的有效的管理 ( 比如处理对象间的关系,将对象按照需求有效的结合起来 ).
3 使用了 Spring 可以让您在不修改原有代码的前提下,增加新的功能,面向切面的编程也使得程序功能的迭代更加方便
4 由于 Spring 是轻量级的框架,所以侵入性也很低。(所谓侵入性简单点说就是在程序代码中依赖框架中代码的程度,而 Spring 实现的一个低侵入性,是因为 Spring 框架本身集成了 N 个框架,是 Spring 去依赖这些框架而程序代码去依赖 Spring 框架,从而降低了程序代码对框架的依赖性。)
上面就是我总结的几个 Spring 的一些优点吧!有不全的或者解释不正确的期待您的指出
上面说了一些比较表面的东西,这篇稍微深入一点吧(水很深,快被淹死了)
Spring 最基础的东西 我认为是 IOC( 控制反转容器 ) 因为要装东西的话,连个容器都没有那是不行的,而这个 IOC 容器装的就是很多个 bean ,我想就是因为这个原因所以它的跟标记才叫 beans 吧, IOC 负责干的事就是将我们所需要调用的对象反射出去下面一段代码解释这个过程
1 有一群类的实现方法都是相同的 所以我们定义了个接口
比如
public interface Human{
public void show();
}
Ok 一个接口已经做好了下面由一个接口的子类来实现这个接口
Public class Man inplements human{
public void show(){
System.out.println( “我是个男人” );
}
}
Public class Woman inplements human{
public void show(){
System.out.println( “我是个女人” );
}
}
恩 又好了一个类
好了现在我们再来做出一个类来使用上面我们做好的两个东西
Public class ShowMan{
private human;
public void setHuman(Human human){
this.human=human;
}
public void showMan(){
human.show();
}
}
呵呵 好了 下面就是一个 test 类的写法哦
这个可是一个关键啊
spring-framework-2.0-with-dependencies/spring-framework-2.0/dist/ spring.jar
这个包就可以让您吧 Spring 给用起来
public class Test {
public static void main(String [] args){
BeanFactory bean = new ClassPathXmlApplicationContext( "applicationContext.xml" );// 这一句的意思得到了那个装满了 bean 的容器
Man human = bean.getBean(“sx”); // 这样就可以得到在配置文件中您已经配置好的对象了
human.show();
}
}
在这里 先当该配置文件是配好了的,我们可以看到上面 在 showMan 那个类当中属性我们并没有给出是哪个具体的类,而给的是该类的接口,在配置文件不明确的情况下我们并不能知道该类属性的具体类型 是 man 还是 woman 。但是是什么让配置文件按照我们的意愿去引用我们所需要的类的对象呢?
那就是 IOC 容器根据配置文件中的信息将对象反射回我们调用的代码之中
<bean id=”man” class=”Man”>
< bean id = "sx" class = "showMan" >
< property name = "human" ref = "oracle" >
</ property >
</bean>
过程是得到一个 Man 的对象 再其注入到 id 为 sx 的 showMan 类的对象中去而在代码的实现的效果来看 我们是用一个接口的实例得到的确实接口的实现类的结果(所谓的反转就是这个意思啦)
Spring的核心就是IOc注入,他能使例如Dao组件,业务逻辑组件,以及struts中的Action等组件,能以松耦合的方式在一块,而不是以硬编码的方式组合在一起(也就是传统的以new生成类的对象,从而达到类与类之间的通信),spring通过配置文件类管理类,通过依赖注入的方式实现通信,从而挺高了我们系统的整体性能,当我们的系统业务逻辑发生改变时,只需改动配置文件即可
分享到:
相关推荐
这个教程是专为学习 Spring MVC 开发入门而写。这一系列的 Spring MVC 教程是基于新的 ...Spring MVC 是 Spring 产品组合的一部分,它享有 Spring IoC容器紧密结合Spring松耦合等特点,因此它有Spring的所有优点。
Spring3 MVC的优点: 1、Spring3 MVC的学习难度小于Struts2,Struts2用不上的多余功能太多。呵呵,当然这不是决定因素。 2、Spring3 MVC很容易就可以写出性能优秀的程序,Struts2要处处小心才可以写出性能优秀的程序...
2、Spring3 MVC很容易就可以写出性能优秀的程序,Struts2要处处小心才可以写出性能优秀的程序(指MVC部分) 3、Spring3 MVC的灵活是你无法想像的,Spring的扩展性有口皆碑,Spring3 MVC当然也不会落后,不会因使用了...
Java Web框架例子合集(spring,springmvc,mybatis,struts2,hibernate)
页面加查询条件,后台不需要写任何逻辑判断,动态拼SQL追加查询条件 [3].常用共通封装 数据字典封装, 邮件发送封装,定时器封装,hibernate+spring jdbc组合使用 [4].完整用户权限封装 权限可直接使用 功能:权限,...
1、mini-jdbc:针对spring jdbc的一些不方便的地方,做了一些封装,大小写不敏感,简化了日常的开发工作。 基于spring jdbc的RowMapper自动实现对象映射,大部分功能已经由spring jdbc实现了。2、数据类型的设计:...
springMVC是当前最优秀的MVC框架,其优点是:使用简单、学习成本低、可以很容易就写出优秀的程序,其灵活性也是你无法想象的。
结合项目中优点: (1) 因为数据存在内存中,类似于 HashMap ,HashMap 的优势就是查找和操作的时间复杂度都是O (1) 。 (2) Redis 本质上是一个 Key-Value 类型的内存数据库,很像Memcached ,整个数据库统统加载在...
《Step By Step写测试》介绍使用 JTESTER 写单元测试,作者吴大瑞,pdf 格式,大小 1.8MB。本书带有 pdf 书签,方便读者阅读。 目录: Jtester的项目配置 1 TestNG测试 1.1 一个简单到不能再简单的测试 1.2 在...
读写分离采用插件的形式实现的,优点是不需要写源注解,不需要写分开的Mapper.xml。 如果只有主库的话,那么会创建两个地址相同的连接池,写主库,读从库。 注意:没有使用Spring,只用到了Mybatis。
写一个方法,实现字符串的反转,如:输入abc,输出cba 写一个方法,实现字符串的替换,如:输入bbbwlirbbb,输出bbbhhtccc。 3.数据类型之间的转换 如何将数值型字符转换为数字(Integer,Double) 如何将数字...
1.10. 使用Hibernate的优点: 6 1.11. Hibernate是如何延迟加载? 6 1.12. Hibernate中怎样实现类之间的关系?(如:一对多、多对多的关系) 6 1.13. Hibernate的查询方式 7 1.14. 如何优化Hibernate? 7 2 Struts部分 7...
SpringMVC:是基于Spring的一个子框架(MVC框架),功能强于Spring,这个框架主要是解决咱们Controller这一层的问题。 M:model-模型User V:view-视图jsp C:Controller-控制器servlet jQuery框架:是一个程序员使用...
kratos的优点: 1、动态数据源的无缝切换; 2、master/slave一主一从读写分离; 3、单线程读重试(取决于的数据库连接池是否支持); 4、单独支持Mysql数据库; 5、非Proxy架构,与应用集成,应用直连数据库,降低外围...
写一个jdbc的访问oracle的列子.mp4 │ Java面试题34.jdbc中preparedStatement比Statement的好处.mp4 │ Java面试题35.数据库连接池的作用.mp4 │ Java面试题36.HTML.mp4 │ Java面试题37.简单介绍了一下Ajax.mp4 │ ...
通过JAVA写数据到XML里面 415 内容总结 418 独立实践 418 第二十三章:HTML基础 419 学习目标 419 知识要点 420 HTML元素 420 标签属性 420 HTML基本标签 422 标题元素 422 HTML格式 427 HTML实体 431 不可拆分的...
Redis、MySQL、Spring、Spring Boot、Spring Cloud、RabbitMQ、Kafka、 Linux 等技术栈 1、MyBatis 面试题 1、什么是 Mybatis 2、Mybaits 的优点 3、MyBatis 框架的缺点 4、MyBatis 框架适用场合 5、MyBatis 与...
内容缓存,主要用于处理大量数据的高访问负载,也用于一些日志系统等等 Key 指向 Value 的键值对,通常用HashTable来实现 查找速度快 数据无结构化,通常只被当作字符串或者二进制数据 列存储数据库 Cassandra, ...
(3)采用当下最流行的前后端分离方式,这种思路的优点是在于代码的耦合度比较高,内聚程度较低,便于明确分工职责,前端的人写前端的代码,后端的人写后端的代码。做到了专业的人负责专业的事情,前端使用VUE + ...
答:存储过程是一个预编译的SQL语句,优点是允许模块化的设计。就是说只需要创建一次,以后再程序中就可以调用多次。使用存储过程比单纯的SQL语句要快,可以用一个命令对象来调用存储过程。 索引优缺点? 答:索引...