一,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注入