spring 지식 요약
<bean id="myDataSource" destroy-method="close"
class="org.apache.commons.dbcp.BasicDataSource">
<!-- results in a setDriverClassName(String) call -->
<property name="driverClassName">
<value>com.mysql.jdbc.Driver</value>
</property>
<property name="url">
<value>jdbc:mysql://localhost:3306/mydb</value>
</property>
<property name="username">
<value>root</value>
</property>
</bean>
idref 요소는 용기 내의 다른 bean의 id를
<bean id="theTargetBean" class="..."/>
<bean id="theClientBean" class="...">
<property name="targetName">
<idref bean="theTargetBean" />
</property>
</bean>
상기 bean 정의 세션은 (실행할 때) 아래의 세션과 완전히 같습니다.
<bean id="theTargetBean" class="..."/>
<bean id="client" class="...">
<property name="targetName">
<value>theTargetBean</value>
</property>
</bean>
첫 번째 형식이 두 번째 형식보다 더 좋은 이유는 idref 표시를 사용하여 용기를 배치할 때 인용된 bean이 존재하는지 검증할 수 있기 때문이다.두 번째 방식에서는client bean에 전달된 targetName 속성 값이 검증되지 않았습니다.
인용된 bean이 같은 XML 파일에 있고 bean 이름이 bean id라면 local 속성을 사용할 수 있습니다. 이 속성은 XML 해석기가 XML 파일을 분석할 때 인용된 bean을 검증할 수 있도록 합니다.
예:
<idref local="theTargetBean"/>
depends-on 속성은 현재 bean을 초기화하기 전에 한 개 이상의 bean이 초기화되도록 현저하게 강제할 수 있습니다.예를 들어 클래스의 정적 블록이 초기화되었을 때 데이터베이스 구동 등록과 같다.여러 개의 bean에 대한 의존을 나타낼 필요가 있으면'depends-on'에서 지정한 여러 개의 bean 이름을 구분자로 구분할 수 있으며 구분자는 쉼표, 빈칸, 분호 등이 될 수 있습니다.
<bean id="beanOne" class="ExampleBean" depends-on="manager"/>
<bean id="manager" class="ManagerBean" />
ApplicationContext가 실행하는 기본 동작은 시작할 때 모든singleton bean을 미리 실례화하는 것입니다.만약singleton bean이 Application Context에서 초기화할 때 미리 실례화되기를 원하지 않는다면, bean을 지연 실례화로 설정할 수 있습니다.지연 초기화 bean은 IoC 용기가 시작될 때인지, 처음 사용될 때 실례화될 때인지 알려 줍니다.XML 프로필에서 지연 초기화는
XML 형식으로 bean을 설정할 때,
경험에 따르면 모든 상태가 있는 bean에는prototype 작용역을 사용해야 하고, 상태가 없는 bean에는singleton 작용역을 사용해야 한다.
Spring의 Initializing Bean과Disposable Bean 두 로고 인터페이스를 실현한 bean은 초기화하고 분석할 때 용기에서 전자의afterProperties Set () 방법과 후자의destroy () 방법을 호출합니다.
Initializing Bean 인터페이스를 사용하지 마십시오. 코드와 Spring을 결합시킬 수 있기 때문에, Bean 정의에서 일반적인 초기화 방법을 지정할 수 있습니다. 즉, XML 프로필에서 init-method 속성을 지정해서 완성할 수 있습니다.또한 DisposableBean 로고 인터페이스를 사용하는 것을 피해야 한다. (이 인터페이스를 사용하는 것을 권장하지 않는다. 코드를 Spring과 결합시킬 수 있기 때문이다.) bean 정의에서 일반적인 분석 방법을 지정할 수 있다. 즉, XML 프로필에서destroy-method 속성을 지정해서 완성할 수 있다.
맨 윗부분
이루어지다springframework.beans.factory.BeanFactory Aware 인터페이스의 클래스입니다. BeanFactory가 만들어지면 BeanFactory를 만드는 것을 가리키는 인용이 있습니다.비안이 빈 팩토리를 가리키는 인용을 가지게 하는 것이다.그러나 일반적으로 사용을 피해야 한다. 왜냐하면 이렇게 하면 코드가 스프링과 결합되고 전환 제어의 원칙에 위반되기 때문이다(협동자는 속성으로 bean에 제공해야 한다).
ObjectFactoryCreatingFactoryBean과 BeanFactoryAware의 차이점은 반전을 제어하는 원칙을 위반하지 않았기 때문이다. 왜냐하면 어떤 bean이 이 FactoryBean을 주입한 후에 의존하는 bean은 이 ObjectFactory에서 제공하기 때문에 bean에 의존하는 일을 더 많이 할 수 있다.
만약 비안이 org를 실현했다면.springframework.beans.factory.BeanName Aware 인터페이스가 하나의 BeanFactory에 배치되어 있으며, BeanFactory는 이 인터페이스의 setBeanName () 방법을 통해 배치될 때의 bean id를 알려 줍니다.bean 속성이 설정된 후, InitializingBean의afterProperties Set이나 사용자 정의 init-method와 같은 초기화 리셋이 실행되기 전에 이 인터페이스의 리셋 방법이 호출됩니다.
org.springframework.beans.factory.config.BeanPostProcessor 인터페이스에는 두 가지 콜백 방법이 있습니다.이 인터페이스의 구현 클래스가 등록되면 (이 등록을 어떻게 하는지 다음 글 참조) 용기의 백업 프로세서 (post-processor) 로 초기화 방법 (예: 애프터 Properties Set, 임의로 설명된 init 방법) 을 호출하기 전에, 백업 프로세서는 용기에서 각각 리셋을 가져옵니다.백엔드 프로세서는 이 bean의 실례에 따라 원하는 동작을 실행할 수 있습니다. 이 리셋을 완전히 무시하는 것을 포함합니다.하나의 bean 백업 프로세서는 일반적으로 로고 인터페이스를 검사하거나, 하나의 bean을 하나의 proxy로 포장하는 일을 한다.일부 Spring AOP의 베이스 처리도 bean 백업 프로세서를 통해 프록시 포장 논리를 실행합니다.
BeanPostProcessor를 지연 초기화로 표시하지 마십시오.만약 당신이 이렇게 한다면, Spring 용기는 그것들을 등록하지 않을 것이며, 사용자 정의 논리는 적용될 수 없습니다.만약
Spring의 BeanPostProcessor 구현에서 로고 인터페이스를 호출하거나 주석을 사용하는 것은 Spring IoC 용기를 확장하는 데 자주 사용되는 방법입니다.
BeanFactoryPostProcessor는 bean의 정의(메타데이터 설정)를 처리할 수 있습니다.즉, Spring IoC 용기는 BeanFactoryPostProcessor가 용기에 실제적으로 다른 bean을 실례화하기 전에 설정 메타데이터를 읽고 수정할 수 있도록 합니다.여러 BeanFactoryPostProcessor를 구성합니다.'order'속성을 설정해서 BeanFactoryPostProcessor의 실행 순서를 제어할 수 있습니다. (BeanFactoryPostProcessor가 Ordered 인터페이스를 실현했을 때만 이 속성을 설정할 수 있기 때문에 BeanFactoryPostProcessor를 실현할 때 Orderd 인터페이스를 실현하는 것을 고려해야 합니다)
PlapertyPlaceholderConfigurer는 bean공장 백업 프로세서의 구현으로 BeanFactory 정의의 일부 속성 값을 다른 단독 표준 Java Properties 파일에 넣을 수 있습니다.
Property Override Configurer는 다른 beanfactory processor입니다.properties 파일의 값을 사용하여 기존의 값을 덮어쓸 수 있습니다
하나의 프로세스 or는 실례를 바꾸는 것이고, 하나는 정의를 바꾸는 것이다
FactoryBean 인터페이스는 Spring IoC 컨테이너에 삽입하여 인스턴스 로직을 사용자 정의하는 인터페이스 포인트입니다.만약 복잡한 초기화 코드를 자바로 더 잘 표시할 수 있다면, 지루한 XML을 사용하지 않고, 자신만의 팩토리 빈을 만들고, 그 클래스에 복잡한 초기화 동작을 쓴 다음, 사용자 정의 팩토리 빈을 용기에 삽입할 수 있습니다.
-----spring bean id name
id 속성 이름은 XML의 명칭 규범을 충족시켜야 합니다. 왜냐하면 id는 사실 XML에 한정되어 있기 때문입니다.총괄적으로 말하면 자바 변수의 명칭에 해당한다. 숫자, 기호로 시작할 수 없고 빈칸이 있을 수 없다. 예를 들어 123,?ad, "ab"등은 모두 규범에 맞지 않습니다. Spring은 초기화할 때 오류를 보고합니다
name 속성은 이러한 제한이 없습니다. 예를 들어?ab,123 등이지만 빈칸을 사용할 수 없습니다. 예를 들어 "a b", "abc"는 초기화할 때 오류가 발생하지 않지만 getBean () 에서는 오류가 발생합니다.
그러나 설정 파일에는 두 개의name가 같은
getBean("com.stamen.BeanLifeCycleImpl")은 인스턴스를 반환합니다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
thymeleaf로 HTML 페이지를 동적으로 만듭니다 (spring + gradle)지난번에는 에서 화면에 HTML을 표시했습니다. 이번에는 화면을 동적으로 움직여보고 싶기 때문에 입력한 문자를 화면에 표시시키고 싶습니다. 초보자의 비망록이므로 이상한 점 등 있으면 지적 받을 수 있으면 기쁩니다! ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.