专栏首页Howl同学的学习笔记Spring入门(一)——IOC

Spring入门(一)——IOC


1. IOC定义

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

2. 流程

2.1 创建Bean对象

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

<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对象

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

3. 其他细节

3.1 带参构造函数创建对象

<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 装载集合

<bean id="userService" class="bb.UserService" >
    <constructor-arg >
        <list>
            //普通类型
            <value></value>
            //引用类型
            <ref></ref>
        </list>
    </constructor-arg>
</bean>

3.3 注解

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>标签了

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Java的标签

    以前笔者如何退出双重循环呢? 利用循环条件判断,加上break、continue、return可以改变流程

    晚上没宵夜
  • JavaWeb分页

    晚上没宵夜
  • Mybatis入门(一)

    晚上没宵夜
  • CellChat:细胞间相互作用分析利器

    我们知道,细胞间信息传递方式一个是细胞表面配受体的相互作用,另一个通过细胞产生的可溶性小分子,即细胞因子。在单细胞数据分析中下游,有时候我们想看某几种细胞类型之...

    生信技能树jimmy
  • spring的缓存(cache)-分布式缓存

    注:本文篇幅有点长,所以建议各位下载源码学习。(如需要请收藏!转载请声明来源,谢谢!)

    逍遥壮士
  • Spark源码系列(二)RDD详解

    1、什么是RDD? 上一章讲了Spark提交作业的过程,这一章我们要讲RDD。简单的讲,RDD就是Spark的input,知道input是啥吧,就是输入的数据。...

    岑玉海
  • 我是如何通过手机定位妹子的位置的

    lonelyvaf
  • Entity Framework 关系约束配置

    简单的说一下自己的理解,大家应该都很明白ADO.NET,也就是原生态的数据库操作,直接通过拼接SQL语句,表与表之间通过链接(inner join  left ...

    aehyok
  • CVPR大规模行为识别竞赛连续两年夺冠,上交大详细技术分享

    【新智元导读】近日,视频行为理解领域的ImageNet竞赛——ActivityNet Challenge 2018在CVPR 会议上落下了帷幕。来自上海交通大学...

    新智元
  • 原创投稿 | nginx的日志配置

    ? 1. nginx中日志的种类 nginx中可以记录的日志主要有access日志、error日志和rewrite日志。前两种由ngx_http_log_mo...

    小小科

扫码关注云+社区

领取腾讯云代金券