Spring 프레임 워크는 무엇을 하는가?
봄은 오늘날처럼 단순한 프레임 워크로 알려진 것이 아니라 완전한 생태계입니다.
봄 생태계에서 다루는 주제 :
생태계에 대한 전체 내용은 여기 를 참조 하십시오 . 프로젝트를 신중하게 선택 하여 DI와 같은 Google Guice 와 Spring Security를 사용하여 보안 관련 사항을 처리 할 수 있습니다 . 당신은 전체 생태계를 구매할 필요가 없습니다.
스프링 프레임 워크 자체는 오늘날 주로 다루고 있습니다.
소스 spring.io
일반적으로 Spring은 코드에서 구현 된 패턴 및 연습 모음으로, 애플리케이션 개발주기를 개선하거나 가속화하는 데 도움이 될 수 있습니다.
그것 (핵심 프레임 워크)이 가장 잘 알려진 것은 의존성 주입 분야의 기능입니다 . 스프링 자체에는 컨트롤 컨테이너의 반전 또는 짧은 IoC 컨테이너 또는 더 짧은 컨테이너가 있습니다. ( "스프링"이 때때로 동의어로 사용됨)가 있습니다.
의존성 주입이란 무엇입니까?
종속성 주입은 개체가 외부화 된 메커니즘을 통해 다른 개체에 대한 모든 종속성을 받는다는 것을 의미합니다.
예를 들어, 자동차가 있으며 일반적인 방법은 다음과 같습니다.
public class Car {
Engine e;
public Car() {
e = new Engine();
}
}
자동차 개체는 엔진에 따라 다릅니다. 엔진은 자동차의 멤버로 구현되므로 테스트 엔진 등으로 교체 할 수 없습니다.
이제 의존성 주입 이 작동합니다.
public class Car {
Engine e;
public Car(Engine e) {
this.e = e;
}
}
그 후에는 엔진을 전환 할 수 있습니다. 위에서 본 것을 생성자 주입 이라고 합니다. setter -injection 또는 method -injection 과 같은 다른 유형이 있습니다 . Spring이 어떻게 도와 주나요? Spring은 주석이 주입 된 구성 요소를 표시 할 수있게하고 주입 된 @Autowired
오브젝트의 배선을 자동으로 수행합니다. 주입하려는 구성 요소 자체에 종속성이있을 가능성이 높습니다. 즉, 주사 가능 물질은 다음을 통해 표시됩니다.@Component
public class Car {
Engine e;
@Autowired
public Car(Engine e) {
this.e = e;
}
}
그러나 이것은 Spring이 제공해야하는 많은 기능 중 하나 일뿐입니다.
Spring을 사용해야합니까? 그 이유는 무엇?
스프링은 그다지 방해가되지 않으며 스프링 사용을 고려해야하는 많은 보조 도구를 제공합니다. 특히 새 프로젝트의 경우 Spring Boot 가 매우 매력적입니다. start.spring.io는 쉬운 사용합니다 point'n'click 시작하는 프로젝트 템플릿을 생성 할 수 -interface을. curl
템플릿을 검색하는 데 사용할 수도 있습니다 .
curl start.spring.io
. ____ _ __ _ _
/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
\\/ ___)| |_)| | | | | || (_| | ) ) ) )
' |____| .__|_| |_|_| |_\__, | / / / /
=========|_|==============|___/=/_/_/_/
:: Spring Initializr :: https://start.spring.io
This service generates quickstart projects that can be easily customized.
Possible customizations include a project's dependencies, Java version, and
build system or build structure. See below for further details.
The services uses a HAL based hypermedia format to expose a set of resources
to interact with. If you access this root resource requesting application/json
as media type the response will contain the following links:
+-----------------+-----------------------------------------+
| Rel | Description |
+-----------------+-----------------------------------------+
| gradle-build | Generate a Gradle build file |
| gradle-project | Generate a Gradle based project archive |
| maven-build | Generate a Maven pom.xml |
| maven-project * | Generate a Maven based project archive |
+-----------------+-----------------------------------------+
...
반면에 spark 또는 dropwizard 와 같은 프레임 워크 는 빠른 웹앱 생성을위한 좋은 출발점을 제공합니다.