登录  /  注册
首页 > Java > java教程 > 正文

Spring框架是什么?Spring框架IOC容器的介绍

不言
发布: 2018-10-19 16:08:34
转载
4073人浏览过

本篇文章给大家带来的内容是关于spring框架是什么?spring框架ioc容器的介绍,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

一、Spring开源框架的简介

Spring是一个开源框架,也是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson 在其著作《Expert One-On-One J2EE Development and Design》中阐述的部分理念和原型衍生而来。它是为了解决企业应用开发的复杂性而创建的。

Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。 简单来说,Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。

spring的基本框架主要包含六大模块:DAO、ORM、AOP、JEE、WEB、CORE。

  2419508943-5bc98809a74b6_articlex.jpg

Spring DAO:Spring提供了对JDBC的操作支持:JdbcTemplate模板工具类 。
Spring ORM:Spring可以与ORM框架整合。例如Spring整合Hibernate框架,其中Spring还提供HibernateDaoSupport工具类,简化了Hibernate的操作 。
Spring WEB:Spring提供了对Struts、Springmvc的支持,支持WEB开发。与此同时Spring自身也提供了基于MVC的解决方案 。
Spring  AOP:Spring提供面向切面的编程,可以给某一层提供事务管理,例如在Service层添加事物控制 。
Spring   JEE:J2EE开发规范的支持,例如EJB 。
Spring Core:提供IOC容器对象的创建和处理依赖对象关系 。

二、Spring下IOC容器和DI(依赖注入Dependency injection)

  IOC容器:就是具有依赖注入功能的容器,是可以创建对象的容器,IOC容器负责实例化、定位、配置应用程序中的对象及建立这些对象间的依赖。通常new一个实例,控制权由程序员控制,而"控制反转"是指new实例工作不由程序员来做而是交给Spring容器来做。。在Spring中BeanFactory是IOC容器的实际代表者。

  DI(依赖注入Dependency injection) :在容器创建对象后,处理对象的依赖关系。

  依赖注入spring的注入方式:

set注入方式

静态工厂注入方式

构造方法注入方式

基于注解的方式

  1、set注入方式:
 控制层代码:

private OrderServiceImp orderService;
    
public void setOrderService(OrderServiceImp orderService) {
       this.orderService = orderService;
}
登录后复制

Spring配置XML文件:其中配置声明OrderAction类存在属性orderService。程式运行时候,会将已经实例化的orderService对象调用setOrderService方式注入。

<bean>
        <property></property></bean><bean></bean>
登录后复制

2、构造器注入方式:

控制层代码:

private OrderServiceImp orderService;
    
public OrderAction(OrderServiceImp orderService) {
        this.orderService = orderService;
    }
登录后复制

 Spring配置XML文件:

<bean>
      <constructor-arg></constructor-arg></bean><bean></bean>
登录后复制

3、基于注解的方式(推荐使用,比较便捷少配置)

控制层代码:

@Autowired   //@Resource
private OrderServiceImp orderService;
登录后复制

 服务层代码:

@Service("orderService")
public class OrderServiceImp implements IOrderService {

    @Autowired
    private JavaOrderMDaoImp javaOrderMDao;

    @Autowired
    private JavaOrderDDaoImp javaOrderDDao;

    @Override
    public List<javaordermlist> findOrderM(OrderSearch search) {
        return javaOrderMDao.findJavaOrderM(search);
    }

    @Override
    public List<javaorderdlist> findOrderD(OrderSearch search) {
        return javaOrderDDao.findJavaOrderD(search);
    }

}</javaorderdlist></javaordermlist>
登录后复制

DAO层代码:

@Repository("javaOrderMDao")
public class JavaOrderMDaoImp extends BaseHibernateDAO<javaorderm> implements IJavaOrderMDao {...}</javaorderm>
登录后复制
@Repository("javaOrderDDao")
public class JavaOrderDDaoImp extendsBaseHibernateDAO<javaorderd> implements IJavaOrderDDao {...}</javaorderd>
登录后复制

注意点:

  ⑴ 持久层DAO层注解Repository中规定了名称,在Service层中声明名称必须一致。

  ⑵ 服务层Service层注解Service中规定了名称,在控制层中声明的名称必须一致。

  ⑶ 注解方式注入依赖注解:

@Component         把对象加入ioc容器,对象引用名称是类名,第一个字母小写
@Component(“name”) 把指定名称的对象,加入ioc容器
@Repository        主要用于标识加入容器的对象是一个持久层的组件(类)
@Service           主要用于标识加入容器的对象是一个业务逻辑层的组件
@Controller        主要用于标识加入容器的对象是一个控制层的组件
@Resource          注入属性(DI), 会从容器中找对象注入到@Resource修饰的对象上
@Autowired         注入属性(DI), 会从容器中找对象注入到@Autowired修饰的对象上
登录后复制

⑷ 注解可以简化配置,提升开发效率,但是也不利于后期维护。

 注:@Autowired与@Resource的区别

以上就是Spring框架是什么?Spring框架IOC容器的介绍的详细内容,更多请关注php中文网其它相关文章!

智能AI问答
PHP中文网智能助手能迅速回答你的编程问题,提供实时的代码和解决方案,帮助你解决各种难题。不仅如此,它还能提供编程资源和学习指导,帮助你快速提升编程技能。无论你是初学者还是专业人士,AI智能助手都能成为你的可靠助手,助力你在编程领域取得更大的成就。
来源:segmentfault思否网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
关于CSS思维导图的课件在哪? 课件
凡人来自于2024-04-16 10:10:18
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2024 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号