前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Spring入门(一)——IOC

Spring入门(一)——IOC

作者头像
晚上没宵夜
发布2020-03-11 14:25:39
2590
发布2020-03-11 14:25:39
举报

1. IOC定义

Inversion of Control,减低计算机代码间的耦合度,对象的创建交给外部容器完成,不用再new了

2. 流程

2.1 创建Bean对象

代码语言:javascript
复制
package bean;

public class User {
    
    private String name;
    private String email;
    private String password;
    
    /**
    * 省略了getters/setters
    * @author Howl
    */
    
    //构造函数
    public User(String name, String email, String password) {
        super();
        this.name = name;
        this.email = email;
        this.password = password;
    }
}

2.2 配置applicationContext.xml

代码语言:javascript
复制
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:p="http://www.springframework.org/schema/p"
    xmlns:context="http://www.springframework.org/schema/context"
    xsi:schemaLocation="
        http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/context
        http://www.springframework.org/schema/context/spring-context.xsd">
    <!-- 上面是约束的固定写法 -->
    
    
    <!-- 配置Bean对象给Spring容器 -->
    <!-- id 唯一表示 -->
    <!-- class 对应的Bean对象 -->
    <!-- scope 作用域,单例和多例 -->
    <bean id="User" class="bean.User" scope="singleton"></bean>
    
</beans> 

2.3 通过容器获取Bean对象

代码语言:javascript
复制
//通过配置文件获取上下文
applicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");
//通过上下文获取Bean对象,不用通过new方式了
User user = ac.getBean("User");

3. 其他细节

3.1 带参构造函数创建对象

代码语言:javascript
复制
<bean id="User" class="bean.User" scope="singleton">
    
    <!--constructor指定构造函数的参数类型、名称、第几个-->
    <constructor-arg index="0" name="name" type="String" value="Howl"></constructor-arg>
    <!--参数为对象时,value改为ref="" -->
</bean>

3.2 装载集合

代码语言:javascript
复制
<bean id="userService" class="bb.UserService" >
    <constructor-arg >
        <list>
            //普通类型
            <value></value>
            //引用类型
            <ref></ref>
        </list>
    </constructor-arg>
</bean>

3.3 注解

代码语言:javascript
复制
1.先引入context名称空间
xmlns:context="http://www.springframework.org/schema/context"

2.开启注解扫描器
<context:component-scan base-package=""></context:component-scan>

3.在Bean对象中添加@Component(name ="User"),就不用在配置文件中写<Bean>标签了
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-12-03 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. IOC定义
  • 2. 流程
    • 2.1 创建Bean对象
      • 2.2 配置applicationContext.xml
        • 2.3 通过容器获取Bean对象
        • 3. 其他细节
          • 3.1 带参构造函数创建对象
            • 3.2 装载集合
              • 3.3 注解
              相关产品与服务
              容器服务
              腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档