Spring知识小计1
2021-03-08 08:28
标签:应用 spring list 三种方式 ESS 文件 -- set 需要 Bean的实例化个数:1 Bean的实例化时机:当Spring的核心文件被加载的时候 Bean的生命周期: Bean的实例化个数:多个,每次进行调用getBean的时候,都会实例化新的对象 Bean的实例化时机:调用getBean的时候 Bean的生命周期 有三种方式:无参构造方法实例化,工厂静态方法实例化,工厂实例方法实例化 这样就可以利用UserDao userDao = (UserDao)applicationContext.getBean(“userDao”);获得UserDao的对象了。 既然是工厂方法,肯定要先构造一个工厂放到spring容器中 其中factory-method是用来指向具体的方法的,这里因为是静态的,因此通过getBean()方法后会或的对应的class的属性,进而得到对应的类(不是类的对象),最后在根据factory-method方法来表明这个类应该调用那个方法来返回所需要的对象 依赖注入式Spring框架核心IOC的具体实现。在编写程序的时候,由于IOC的存在,对象的创建权被交给了Spring,但是代码中不可能出现没有依赖的情况,IOC的存在也只是降低了耦合而不是消灭了耦合。 构造方法注入(引用类型数据的注入为例) set方法注入,引用类型数据的注入为例,如果是用的是xml方式的话set方法不能省略,但是如果使用的是注解方式,那么set方法可以省略) 如果使用set方法注入,并且注入数据少的话可以使用p命名空间注入(就是简化了而已)。 P命名空间注入本质也是set方法注入,但比起上述的set方法注入更加方便,主要体现在配置文件中,如下: 首先,需要引入P命名空间: 其次,需要修改注入方式: 普通数据类型 引用数据类型 集合数据类型 List List Map Properties Spring知识小计1 标签:应用 spring list 三种方式 ESS 文件 -- set 需要 原文地址:https://www.cnblogs.com/xiaoqingnianXQP/p/14206400.html1. Bean标签
取值范围
说明
singleton
这是默认值,单例
prototype
多例
request
WEB 项目中,Spring 创建一个 Bean 的对象,将对象存入到 request 域中
session
WEB 项目中,Spring 创建一个 Bean 的对象,将对象存入到 session 域中
gloable session
WEB 项目中,应用在 Portlet 环境,如果没有 Portlet 环境那么globalSession 相当于 session
1.1 当scope的取值是singleton的时候
ApplicationContext applicationContext=new ClassPathXmlApplicationContext("applicationContext.xml");
1.2 当scope的取值是prototype的时候
Object userService = applicationContext.getBean("userService");
2. 如何进行Bean的实例化
2.1 无参构造方法
2.2 工厂静态方法
public class StaticFactoryBean {
public static UserDao createUserDao(){
return new UserDaoImpl();
}
}
2.3 工厂实例方法
public class DynamicFactoryBean {
public UserDao createUserDao(){
return new UserDaoImpl();
}
}
3. Bean的依赖注入
3.1 依赖注入的两种方式
public class UserServiceImpl implements UserService {
private UserDao userDao;
public void setUserDao(UserDao userDao) {
this.userDao = userDao;
}
@Override
public void save() {
userDao.save();
}
}
xmlns:p="http://www.springframework.org/schema/p"
3.2 依赖注入的数据类型
public class UserDaoImpl implements UserDao {
private String company;
private int age;
public void setCompany(String company) {
this.company = company;
}
public void setAge(int age) {
this.age = age;
}
@Override
public void save() {
System.out.println(company+"==="+age);
System.out.println("UserDao save method running....");
}
}
public class UserServiceImpl implements UserService {
private UserDao userDao;
public void setUserDao(UserDao userDao) {
this.userDao = userDao;
}
@Override
public void save() {
userDao.save();
}
}
public class UserDaoImpl implements UserDao {
private List
public class UserDaoImpl implements UserDao {
private List
public class UserDaoImpl implements UserDao {
private Properties properties;
public void setProperties(Properties properties) {
this.properties = properties;
}
@Override
public void save() {
System.out.println(properties);
System.out.println("UserDao save method running....");
}
}