Spring-01-Ioc

 

一,Spring 入门案例  入门程序

1.spring配置文件  环境配置

   ---在pom.xml中导入spring  jar包 

<dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>5.3.1</version>
</dependency>

2.创建com.liuboss.service包     接口UserService

package com.liuboss.service;

public interface UserService {
    public void save();
}

3.在com.liuboss.service  包下创建 impl包   包下创建 UserServiceImpl类  实现 UserService接口

package com.liuboss.service.Impl;

import com.liuboss.service.UserService;

public class UserServiceImpl implements UserService {
    public void save() {
        System.out.println("资源保存中..........");
    }
}

4.在com.liuboss.service包下创建UserApp类   加载配置文件  完成spring的实例化

package com.liuboss.service;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;


public class UserApp {
    public static void main(String[] args) {
        //加载配置文件
        ApplicationContext app = new ClassPathXmlApplicationContext("applicationContext.xml");
        //获取资源
        UserService userService = (UserService) app.getBean("userService");
        userService.save();
    }
}

5.在resources资源文件下创建数据配置文件   applicationContext.xml ---> 名称固定 spring配置文件

    spring控制资源 

<?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">
   <!--创建Spring控制的资源-->
    <bean id="userService" class="com.liuboss.service.Impl.UserServiceImpl"/>
</beans>

6.其中spring配置文件中可以用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">
   <bean id="userService" name="userService1,userService2" class="com.liuboss.service.Impl.UserServiceImlp"/>
</beans>

---多名称配置之后将可以进行多名称进行加载

package com.liuboss.service;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class UserApp {
    public static void main(String[] args) {
        ApplicationContext app = new ClassPathXmlApplicationContext("applicationContext.xml");
        UserService userService = (UserService) app.getBean("userService2");
        userService.save();
        System.out.println(userService);
    }
}

二,单例模式,多例模式

1.单例模式

单例模式  创建   

<?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">
   <bean id="userService" name="userService1,userService2" class="com.liuboss.service.Impl.UserServiceImlp"/>
   <!--scope="singleton"创建单例模式    创建多例模式 scope="prototype"-->
   <bean id="userService3" scope="singleton" class="com.liuboss.service.Impl.UserServiceImlp"/>
</beans>
package com.liuboss.service;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class UserApp {
    public static void main(String[] args) {
        ApplicationContext app = new ClassPathXmlApplicationContext("applicationContext.xml");
        UserService userService1 = (UserService) app.getBean("userService2");
        UserService userService2 = (UserService) app.getBean("userService2");
        UserService userService3 = (UserService) app.getBean("userService2");
        UserService userService4 = (UserService) app.getBean("userService2");
        userService1.save();
        System.out.println(userService1);
        System.out.println(userService2);
        System.out.println(userService3);
        System.out.println(userService4);
    }
}

创建多个输出对象   

单例模式输出  所有对象相同。

多例模式同理   用多例模式将会将会每次创建不同对相。

scope="singleton"创建单例模式    创建多例模式 scope="prototype"

单例模式  当类加载的时候就创建对象    多例模式加载容器的时候并不常见对象,多例模式在获取对象的时候创建对象。

三,Bean的生命周期

 

init-method="init" destroy-method="destory"   进行类的初始化  和   类的销毁方法

 

四,set注入    

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值