Spring(一)

简介: Spring(一)

各位小伙伴,大家好!点个关注,更多精彩等着你哦!!

今天,勇哥我想跟大家分享有关Spring的入门小知识IOC容器,这是Spring入门系列课程,听说优秀的程序员都会点赞关注!

一、什么是IOC?

IOC即控制反转,将对象管理交给容器来管理,由容器帮我们查找并注入依赖的对象,对象中的属性行为等,对象只能被动的接收依赖对象,依赖对象的获取被反转了。IOC可以管理所有轻量级的JavaBean组件,提供的底层服务包括组件的生命周期管理、配置和组装服务、AOP支持,以及建立在AOP基础上的声明式事务服务等等。

IOC的作用:可降低组件之间的耦合度,便于软件之间的解耦。IOC容器提供众多服务,如事务管理等。当我们使用容器管理事务时,开发程序员就不再需要手工控制事务,这样就可以减少不必要的麻烦了,进一步提高工作效率。

如以下所举的列子:图中的中介就相当于Sping中的容器管理IOC,对象房东就交给容器来管理。

二、引入依赖注入。

这是我们一定会疑问,该如何使用Spring? 接下来,我教大家如何用maven导入项目所需的依赖包及创建一个项目。

1.首先用maven创建一个小项目,在pom.xml引入依赖包。

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
 
    <groupId>org.example</groupId>
    <artifactId>spring2</artifactId>
    <version>1.0-SNAPSHOT</version>
 
    <properties>
        <maven.compiler.source>8</maven.compiler.source>
        <maven.compiler.target>8</maven.compiler.target>
    </properties>
    <dependencies>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>5.2.12.RELEASE</version>
        </dependency>
    </dependencies>
</project>

2.然后在项目中先创建一个包,在包中再创建Woman类

package demo1;
 
public class Woman {
    private String name;
    private int    age;
    private String outlook;
 
    public String getName() {
        return name;
    }
 
    public void setName(String name) {
        this.name = name;
    }
 
    public int getAge() {
        return age;
    }
 
    public void setAge(int age) {
        this.age = age;
    }
 
    public String getOutlook() {
        return outlook;
    }
 
    public void setOutlook(String outlook) {
        this.outlook = outlook;
    }
 
    @Override
    public String toString() {
        return "Woman{" +
                "name='" + name + '\'' +
                ", age=" + age +
                ", outlook='" + outlook + '\'' +
                '}';
    }
}

3.在创建一个Man类

public class Man {
    private String name;
    private int  age;
    private double  height;
    private double  weight;
    private int     fund;
    private Woman woman;
 
 
    public void proposal(){
        System.out.println("这名男生名叫"+name+" \n年龄为"+age+"。是一个拥有资产为:"+fund+"的富豪。向一名为:"+
                woman.getName()+woman.getAge()+woman.getOutlook()+"的小姐姐求婚了");
 
    }
    public String getName() {
        return name;
    }
 
    public void setName(String name) {
        this.name = name;
    }
 
    public int getAge() {
        return age;
    }
 
    public void setAge(int age) {
        this.age = age;
    }
 
    public double getHeight() {
        return height;
    }
 
    public void setHeight(double height) {
        this.height = height;
    }
 
    public double getWeight() {
        return weight;
    }
 
    public void setWeight(double weight) {
        this.weight = weight;
    }
 
    public int getFund() {
        return fund;
    }
 
    public void setFund(int fund) {
        this.fund = fund;
    }
 
    public String getInterest() {
        return interest;
    }
 
    public void setInterest(String interest) {
        this.interest = interest;
    }
 
    private String  interest;
 
    @Override
    public String toString() {
        return "Man{" +
                "name='" + name + '\'' +
                ", age=" + age +
                ", height=" + height +
                ", weight=" + weight +
                ", fund=" + fund +
                ", interest='" + interest + '\'' +
                '}';
    }
 
    public void setWoman(Woman woman) {
        this.woman = woman;
    }
 
    public Woman getWoman() {
        return woman;
    }
}

4.最后再创建一个测试类。

package demo1;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
 
public class SpringUser {
    public static void main(String[] args) {
        //ClassPathXmlApplicationContext是ApplicationContext的实现类
        //ApplicationContext是BeanFactory的子接口
        ApplicationContext context=new
                ClassPathXmlApplicationContext("classpath:ApplicationContext.xml");
        Woman xiaoyu = (Woman) context.getBean("xiaoyu");
        System.out.println(xiaoyu);
         Man yong=(Man) context.getBean(Man.class);
        System.out.println(yong);
        System.out.println(xiaoyu==yong.getWoman());
 
    }
}

5.在xml文件中配置Bean,其中包括基本属性。

bean元素:该元素用来描述需要spring容器管理对象

class属性:被管理对象的完整类名

id属性:与name属性一模一样,名称不可重复,及被管理对象的名字

name属性:给被管理的对象起名字,获得对象时可用于来获取属性值,getBean("name值")

   

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
 
    <!--suppress SpringFacetInspection -->
    <bean id="xiaoyu" class="demo1.Woman">
        <property name="name"  value="小宇"/>
        <property name="age" value="18"/>
        <property name="outlook" value="沉鱼落雁"/>
    </bean>
    <bean id="yong" class="demo1.Man">
        <property name="name" value="小华"/>
        <property name="age"  value="20"/>
        <property name="fund" value="1000000000"/>
        <property name="height"  value="178"/>
        <property name="interest" value="爱打篮球,喜欢科研,热爱ai"/>
        <property name="weight" value="105"/>
        <property name="woman" ref="xiaoyu"/>
    </bean>
</beans>

最后,祝你们都有所收获,喜欢记得点个关注,更多精彩等着你哦!!


相关文章
|
10月前
|
Java 数据库连接 mybatis
|
10月前
|
Java 容器 Spring
|
9天前
|
Java API Maven
|
2月前
|
存储 设计模式 Java
【Spring】——Spring简单 读和取(二)
【Spring】——Spring简单 读和取
42 0
【Spring】——Spring简单 读和取(二)
|
2月前
|
存储 Java 数据库
【Spring】——Spring简单 读和取(一)
【Spring】——Spring简单 读和取
52 0
【Spring】——Spring简单 读和取(一)
|
2月前
|
Java 程序员 Maven
Spring(上)
Spring(上)
32 0
|
12月前
|
Java Spring
Spring 是什么?
Spring 是什么?
46 0
|
Java Spring
spring知识总结(二)
spring知识总结(二)
140 0
spring知识总结(二)
|
XML Java 程序员
Spring详解【上】
1、Spring 1.1、简介 Spring:春天 >给软件行业带来了春天! 2002,首次推出了Spring框架的雏形:interface21框架! Spring框架即以interface21框架为基础,经过重新的设计,并不断的丰富其内涵,于2004年3月24日,发布了1.0正式版。 Rod Jo
|
Java 程序员 Spring
深入理解 Spring finishBeanFactoryInitialization (二)
深入理解 Spring finishBeanFactoryInitialization (二)
113 0

热门文章

最新文章

  • 1
    流量控制系统,用正则表达式提取汉字
    27
  • 2
    Redis09-----List类型,有序,元素可以重复,插入和删除快,查询速度一般,一般保存一些有顺序的数据,如朋友圈点赞列表,评论列表等,LPUSH user 1 2 3可以一个一个推
    27
  • 3
    Redis08命令-Hash类型,也叫散列,其中value是一个无序字典,类似于java的HashMap结构,Hash结构可以将对象中的每个字段独立存储,可以针对每字段做CRUD
    27
  • 4
    Redis07命令-String类型字符串,不管是哪种格式,底层都是字节数组形式存储的,最大空间不超过512m,SET添加,MSET批量添加,INCRBY age 2可以,MSET,INCRSETEX
    28
  • 5
    S外部函数可以访问函数内部的变量的闭包-闭包最简单的用不了,闭包是内层函数+外层函数的变量,简称为函数套函数,外部函数可以访问函数内部的变量,存在函数套函数
    25
  • 6
    Redis06-Redis常用的命令,模糊的搜索查询往往会对服务器产生很大的压力,MSET k1 v1 k2 v2 k3 v3 添加,DEL是删除的意思,EXISTS age 可以用来查询是否有存在1
    31
  • 7
    Redis05数据结构介绍,数据结构介绍,官方网站中看到
    22
  • 8
    JS字符串数据类型转换,字符串如何转成变量,+号只要有一个是字符串,就会把另外一个转成字符串,- * / 都会把数据转成数字类型,数字型控制台是蓝色,字符型控制台是黑色,
    20
  • 9
    JS数组操作---删除,arr.pop()方法从数组中删除最后一个元素,并返回该元素的值,arr.shift() 删除第一个值,arr.splice()方法,删除指定元素,arr.splice,从第一
    21
  • 10
    定义好变量,${age}模版字符串,对象可以放null,检验数据类型console.log(typeof str)
    20