봄은 무엇인가?
스프링 JavaSE / EE 전체 스택 정지 경량 오픈 소스 프레임 워크 IOC의 코어와 AOP (Aspect 지향적 프로그래밍 aspect 지향 프로그래밍), 실질적으로 완료 전에 자바빈의 사용 (역 제어 반전 제어) 적층 단지 EJB 작업을 수행 할 수는 EJB가 비 대한 비효율적 인 개발 모델을 교체합니다.
일반적으로 3 계층 서버 아키텍처, 즉 프리젠 테이션 계층 (웹), 비즈니스 로직 계층 (서비스), 지속성 (DAO)의 실제 개발에서는, 각 층의 봄은 기술 지원을 제공합니다.
스프링 1. 기본 패키지 및 lib 디렉토리에 JAR 디렉토리의 네 평민 로깅
2. SRC 디렉토리는 com.itheima.ioc 패키지를 만들고, 패키지의 인터페이스 UserDao를 생성 한 다음 말 () 인터페이스 메서드를 정의합니다.
package com.itheima.ioc;
public interface UserDao {
public void say();
}
클래스를 생성 com.itheima.ioc 패키지 3. 그 UserDaoImpl UserDao, 인터페이스 클래스 말 () 메소드를 구현하고, 방법 출력 문을 작성해야 인터페이스를 구현합니다.
package com.itheima.ioc;
public class UserDaoImpl implements UserDao {
public void say() {
// TODO Auto-generated method stub
System.out.println("UserDao say hello world!");
}
}
4. src 디렉토리에서 Spring 설정 파일 applicationContext.xml을 작성하고 콩의 userDao에 대한 구성 파일에 ID를 만들 수 있습니다.
<?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-4.3.xsd">
<bean id="userDao" class="com.itheima.ioc.UserDaoImpl" />
</beans>
com.itheima.ioc 패키지 5. 테스트 클래스 TestIoC를 생성하고, 클래스의 main () 메소드를 작성한다. main () 메소드에서는 스프링 컨테이너를 초기화하고 구성 파일을로드 한 후 스프링 컨테이너, 말 () 메서드 인스턴스 마지막 호출에 의해 (즉, 자바 객체) userDao 인스턴스를 얻을 필요가있다.
package com.itheima.ioc;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class TestloC {
public static void main(String[]args) {
ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml");
UserDao userDao = (UserDao) applicationContext.getBean("userDao");
userDao.say();
}
}
결과 :
II : 의존성 주입
1. com.itheima.ioc 패키지 인터페이스 UserService, 기록 말 () 인터페이스 메소드를 생성한다.
package com.itheima.ioc;
public interface UserService {
public void say();
}
2. com.itheima.ioc 패키지 구현 UserServiceImpl UserService의 클래스 선언 userDao 속성의 인터페이스와는 setter 메소드 속성을 추가하는 클래스를 만듭니다.
package com.itheima.ioc;
public class UserServicelmpl implements UserService {
private UserDao userDao;
public void setUserDao(UserDao userDao) {
this.userDao = userDao;
}
public void say() {
// TODO Auto-generated method stub
this.userDao.say();
System.out.println("userService say hello World!");
}
}
3,在配置文件applicationContext.xml中,创建一个id为userService的Bean,该Bean用于实例化UserServiceImpl类的信息,并将userDao的实例注入到userService中。(左边会出现红色的❌,但是不影响程序运行)
<?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-4.3.xsd">
<bean id="userDao" class="com.itheima.ioc.UserDaoImpl">
<!-- collaborators and configuration for this bean go here -->
</bean>
<bean id="userService" class="com.itheima.ioc.UserServicelmpl">
<property name="userDao" ref ="userDao"></property>
<!-- collaborators and configuration for this bean go here -->
</bean>
</beans>
4.在com.itheima.ioc包中,创建测试类TestDI,来对程序进行测试。
package com.itheima.ioc;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class TestDl {
public static void main(String[] args) {
ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml");
UserService userService = (UserService) applicationContext.getBean("userService");
userService.say();
}
}
控制台输出结果:
总结:Spring框架的7大优点
Spring具有简单、可测试和松耦合等特点。Spring不仅可以用于服务器端开发,也可以应用于任何Java应用的开发中。