SpringBoot 7 편의 Bean 역할 영역
3683 단어 자바
두 가지 방법,isSingleton 방법 이 true 로 돌아 가면 bean 은 IoC 용기 에 하나의 예 로 존재 합 니 다.이것 은 spring 입 니 다.
IoC 용기 의 기본 값 입 니 다.
isPrototype 은 true 로 bean 을 가 져 올 때마다 새로운 bean 을 만 듭 니 다.
단일 예(singleton),원형(pototype)즉 bean 의 두 가지 역할 영역 입 니 다.
spring 은 모두 다음 과 같은 몇 가지 역할 영역 이 있다.
Bean 의 역할 영역
역할 영역 유형
사용 범위
역할 영역 설명
singleton
사용 하 는 spring 응용
기본 값,IoC 용 기 는 하나의 예 만 존재 합 니 다.
prototype
모든 spring 응용
ioc 용기 에서 bean 을 가 져 올 때마다 새로운 bean 을 만 듭 니 다.
session
spring 웹 응용
http 세 션
application
spring 웹 응용
웹 프로젝트 수명 주기
request
spring 웹 응용
웹 단일 요청
globalSession
spring 웹 응용
전체 httpsession 에서 하나의 bean 은 하나의 인 스 턴 스 에 대응 합 니 다.
테스트 역할 영역:
package com.didispace.bean;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.beans.factory.config.ConfigurableBeanFactory;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Component;
@Component
//@Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE) ,
public class DataBaseProperties {
@Value("${database.driverName}")
private String driverName;
@Value("${database.url}")
private String url;
@Value("${database.userName}")
private String userName;
@Value("${database.password}")
private String password;
public String getDriverName() {
return driverName;
}
public void setDriverName(String driverName) {
System.out.println(driverName);
this.driverName = driverName;
}
public String getUrl() {
return url;
}
public void setUrl(String url) {
System.out.println(driverName);
this.url = url;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
package com.didispace.config;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
//@Configuration java ,
// spring IoC Bean
@Configuration
@ComponentScan(value = "com.didispace.*")
public class AppConfig {
}
package com.didispace;
import com.didispace.bean.DataBaseProperties;
import com.didispace.bean.User;
import com.didispace.config.AppConfig;
import org.apache.log4j.Logger;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
public class IoCTest {
private static Logger log = Logger.getLogger(IoCTest.class);
public static void main (String[] args) {
ApplicationContext ctx = new AnnotationConfigApplicationContext(AppConfig.class);
DataBaseProperties user = ctx.getBean(DataBaseProperties.class);
DataBaseProperties user1 = ctx.getBean(DataBaseProperties.class);
System.out.println(user1 == user);
log.info(user.getUserName());
}
}
코드@Scope(ConfigurableBeanFactory.SCOPEPROTOTOTTYPE)중
ConfigurableBeanFactory 는 두 가지 유형 만 있 습 니 다.SCOPESINGLETON, SCOPE_PROTOTYPE
spring 웹 용기 의 네 가지 유형 을 사용 하려 면 웹 애플 리 케 이 션 Context 를 사용 하여 다른 역할 영역 을 정의 해 야 합 니 다.
SCOPE요청(요청),세 션(SCOPESESSION)과 애플 리 케 이 션(SCOPE APPLICATION).
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Is Eclipse IDE dying?In 2014 the Eclipse IDE is the leading development environment for Java with a market share of approximately 65%. but ac...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.