데이터 베이스 MySQL 튜토리얼 모으다! 봄이 마스터해야 할 것

모으다! 봄이 마스터해야 할 것

Sep 29, 2020 pm 06:05 PM
spring

mysql tutorial 칼럼에서는 Spring에 대해 마스터해야 할 사항을 소개합니다.

안녕하세요 여러분! 나는 조양족의 열정적인 일원이다.

Spring 프레임워크에는 인터뷰에서 꼭 물어봐야 할 질문이 정확히 무엇인가요? 살펴 보겠습니다. 이는 제가 인터뷰에서 자주 묻는 질문이기도 하며, 프레임워크를 이해하는 프로그래머의 능력을 반영하기도 합니다.

Spring 프레임워크 소개

Spring은 개발자의 개발 효율성과 시스템 유지 관리성을 향상시키기 위해 설계된 경량 프레임워크입니다.

우리가 일반적으로 Spring Framework라고 부르는 것은 많은 모듈의 모음입니다. 이러한 모듈을 사용하면 개발에 쉽게 도움이 될 수 있습니다. 이러한 모듈은 핵심 컨테이너, 데이터 액세스/통합, 웹, AOP(측면 지향 프로그래밍), 도구, 메시징 및 테스트 모듈입니다. 예를 들어 Core Container의 Core 컴포넌트는 모든 Spring 컴포넌트의 핵심이고, Beans 컴포넌트와 Context 컴포넌트는 IOC와 DI 구현을 위한 기반이며, AOP 컴포넌트는 관점 지향 프로그래밍을 구현하는 데 사용됩니다.

봄의 6가지 특징:

  • 핵심 기술: DI(종속성 주입), AOP, 이벤트, 리소스, i18n, 유효성 검사, 데이터 바인딩, 유형 변환, SpEL
  • 테스트: 모의 객체, TestContext 프레임워크, Spring MVC 테스트, WebTestClient;
  • 데이터 액세스: 트랜잭션, DAO 지원, JDBC, ORM, Marshal XML;
  • 웹 지원: Spring MVC 및 Spring WebFlux 웹 프레임워크
  • 통합: Remoting, JMS, JCA, JMX, 이메일, 작업
  • 언어: Kotlin, Groovy, 동적 언어

아래 그림은 Spring 4 .x 버전인 포틀릿 구성 요소에 해당합니다. 최신 5.x 버전의 웹 모듈 중 일부는 폐기되었으며 비동기 응답 처리를 위한 WebFlux 구성 요소가 추가되었습니다.

  • Spring Core: 기본적으로 Spring의 다른 모든 기능은 이 클래스 라이브러리에 의존한다고 말할 수 있습니다. 주로 IOC 및 DI 기능을 제공합니다.
  • Spring Aspects: 이 모듈은 AspectJ와의 통합을 지원합니다.
  • Spring AOP: 관점 지향 프로그래밍 구현을 제공합니다.
  • Spring JDBC: Java 데이터베이스 연결.
  • Spring JMS: Java 메시징 서비스.
  • Spring ORM: Hibernate와 같은 ORM 도구를 지원하는 데 사용됩니다.
  • Spring Web: 웹 애플리케이션 생성을 지원합니다.
  • Spring Test: JUnit 및 TestNG 테스트를 지원합니다.

Spring IOC 및 AOP에 대한 이해에 대해 이야기해 주세요.

IOC

IOC(Inversion Of Control, Control In) 벌스(턴)은 디자인 아이디어이고, 이는 원래 프로그램에서 수동으로 생성된 객체의 제어가 관리를 위해 Spring 프레임워크로 넘겨진다는 것을 의미합니다. IOC는 다른 언어에서도 사용되며 Spring에만 국한되지 않습니다. IOC 컨테이너는 Spring이 IOC를 구현하는 데 사용하는 캐리어입니다. IOC 컨테이너는 실제로 Map(키, 값)이며 다양한 객체가 Map에 저장됩니다.

IOC 컨테이너에서 관리할 객체 간의 상호의존성을 남겨두고 IOC 컨테이너가 객체 주입을 완료합니다. 이를 통해 애플리케이션 개발을 크게 단순화하고 애플리케이션을 복잡한 종속성으로부터 해방시킬 수 있습니다. IOC 컨테이너는 객체를 생성해야 할 때 객체 생성 방법을 고려하지 않고 구성 파일/주석만 구성하면 됩니다. 실제 프로젝트에서 서비스 클래스는 하위 계층으로 수백 또는 수천 개의 클래스를 가질 수 있습니다. 이 서비스를 인스턴스화해야 하는 경우 매번 이 서비스의 모든 기본 클래스의 생성자를 파악해야 할 수 있으며 이는 혼란스러울 수 있습니다. 사람들. 미친 듯이 운전해. IOC를 사용하는 경우 이를 구성하고 필요한 곳에 참조하기만 하면 프로젝트의 유지 관리성이 크게 향상되고 개발 난이도가 줄어듭니다.

Spring 시대에는 주로 XML 파일을 통해 Bean을 구성했지만 나중에 개발자들은 XML 파일을 사용하여 Bean을 구성하는 것이 좋지 않다고 느꼈기 때문에 점차 Spring Boot 주석 구성이 대중화되었습니다.

AOP

AOP(관점 지향 프로그래밍)은 비즈니스와 관련이 없지만 일반적으로 비즈니스 모듈에서 호출하는 논리나 책임(트랜잭션 처리, 로그 관리 등)을 결합할 수 있습니다. , 권한 제어 등)은 시스템에서 중복 코드를 줄이고, 모듈 간의 결합을 줄이고, 향후 확장성과 유지 관리성을 용이하게 하기 위해 캡슐화됩니다.

Spring AOP는 동적 프록시를 기반으로 합니다. 프록시할 개체가 특정 인터페이스를 구현하는 경우 Spring AOP는 JDK 동적 프록시를 사용하여 인터페이스를 구현하지 않는 개체의 경우 JDK 동적 프록시를 사용할 수 없습니다. 대신 CGlib 동적 프록시를 사용하여 프록시 개체의 하위 클래스를 프록시로 생성하세요.

물론 AspectJ를 사용할 수도 있습니다. AspectJ는 Java 생태계에서 가장 완벽한 AOP 프레임워크로 간주되어야 합니다. AOP를 사용한 후 몇 가지 일반적인 기능을 추상화하여 필요한 곳에 직접 사용할 수 있으므로 코드 양이 크게 단순화될 수 있습니다. 새로운 기능을 편리하게 추가하고 시스템의 확장성을 높여야 합니다. AOP는 로깅 기능, 트랜잭션 관리, 권한 관리 등의 시나리오에 사용됩니다.

Spring AOP와 AspectJ AOP의 차이점 AOP

Spring AOP는 런타임 향상이지만 AspectJ는 컴파일 타임 향상입니다. Spring AOP는 Proxying을 기반으로 하는 반면 AspectJ는 Bytecode Manipulation을 기반으로 합니다.

Spring AOP에는 Java 생태계에서 가장 완벽한 AOP 프레임워크로 간주되어야 하는 AspectJ가 통합되어 있습니다. AspectJ는 Spring AOP보다 강력하지만 Spring AOP는 비교적 간단합니다.

측면 수가 적으면 둘 사이의 성능 차이가 거의 없습니다. 그러나 측면이 너무 많으면 SpringAOP보다 훨씬 빠른 AspectJ를 선택하는 것이 가장 좋습니다.

봄에 콩의 범위는 어떻게 되나요?

  1. singleton: 유일한 Bean 인스턴스인 Spring의 Bean은 기본적으로 모두 싱글톤입니다.
  2. 프로토타입: 각 요청마다 새로운 Bean 인스턴스가 생성됩니다.
  3. request: 각 HTTP 요청은 현재 HTTP 요청 내에서만 유효한 새 Bean을 생성합니다.
  4. session: 각 HTTP 요청은 현재 HTTP 세션 내에서만 유효한 새 Bean을 생성합니다.
  5. global-session: 전역 세션 범위는 포틀릿 기반 웹 애플리케이션에서만 의미가 있으며 Spring 5에서는 더 이상 사용할 수 없습니다. 포틀릿은 HTML과 같은 의미 코드 조각을 생성할 수 있는 작은 Java 웹 플러그인입니다. 이는 포틀릿 컨테이너를 기반으로 하며 서블릿과 같은 HTTP 요청을 처리할 수 있습니다. 그러나 서블릿과 달리 각 포틀릿에는 다른 세션이 있습니다.

Spring의 싱글톤 Bean의 스레드 안전 문제를 이해하고 계십니까?

대부분의 경우 시스템에서는 멀티스레딩을 사용하지 않으므로 이 문제에 관심을 두는 사람은 거의 없습니다. 싱글톤 Bean에는 스레딩 문제가 있습니다. 주로 여러 스레드가 동일한 객체를 작동할 때 이 객체의 비정적 멤버 변수에 대한 쓰기 작업으로 인해 스레드 안전 문제가 발생하기 때문입니다.

두 가지 일반적인 해결 방법이 있습니다.

  1. Bean 개체에서 변경 가능한 멤버 변수를 정의하지 마세요(매우 현실적이지 않음).
  2. 클래스에 ThreadLocal 멤버 변수를 정의하고 필요한 변수 멤버 변수를 ThreadLocal에 저장합니다(권장 방법).

봄의 콩 수명주기?

  1. Bean 컨테이너는 구성 파일에서 Spring Bean 정의를 찾습니다.
  2. Bean 컨테이너는 Java Reflection API를 사용하여 Bean 인스턴스를 생성합니다.
  3. 일부 속성 값이 관련된 경우 set() 메서드를 사용하여 일부 속성 값을 설정하세요.
  4. Bean이 BeanNameAware 인터페이스를 구현하는 경우 setBeanName() 메서드를 호출하고 Bean 이름을 전달합니다.
  5. Bean이 BeanClassLoaderAware 인터페이스를 구현하는 경우 setBeanClassLoader() 메서드를 호출하고 ClassLoader 개체의 인스턴스를 전달합니다.
  6. Bean이 BeanFactoryAware 인터페이스를 구현하는 경우 setBeanClassFacotory() 메서드를 호출하고 ClassLoader 개체의 인스턴스를 전달합니다.
  7. 위와 마찬가지로 다른 *Aware 인터페이스가 구현되면 해당 메서드가 호출됩니다.
  8. 이 Bean을 로드하는 Spring 컨테이너와 관련된 BeanPostProcessor 객체가 있는 경우 postProcessBeforeInitialization() 메서드를 실행합니다.
  9. Bean이 초기화Bean 인터페이스를 구현하는 경우 afeterPropertiesSet() 메서드를 실행합니다.
  10. 구성 파일의 Bean 정의에 init-method 속성이 포함되어 있으면 지정된 메소드를 실행합니다.
  11. 이 Bean을 로드하는 Spring 컨테이너와 관련된 BeanPostProcess 객체가 있는 경우 postProcessAfterInitialization() 메서드를 실행합니다.
  12. Bean을 삭제하려는 경우 해당 Bean이 DisposableBean 인터페이스를 구현하는 경우 destroy() 메서드를 실행합니다.
  13. Bean을 삭제하고 싶을 때 구성 파일의 Bean 정의에 destroy-method 속성이 포함되어 있으면 지정된 메서드를 실행합니다.

Spring MVC에 대해 어떻게 이해하고 계시나요?

이 문제에 관해 말하자면 Spring MVC가 없었던 이전 시대의 Model1과 Model2를 언급해야 합니다.

**Model1 시대:** Java를 늦게 배운 많은 백엔드 프로그래머는 Model1 모드의 Java 웹 애플리케이션 개발에 노출되지 않았을 수 있습니다. Model1 모드에서는 전체 웹 애플리케이션이 거의 모두 JSP 페이지로 구성되며 소수의 JavaBeans만 데이터베이스 연결, 액세스 및 기타 작업을 처리하는 데 사용됩니다. 이 모드에서 JSP는 제어 계층이자 프리젠테이션 계층입니다. 분명히 이 모델에는 많은 문제가 있습니다. 예를 들어 제어 로직과 성능 로직이 혼합되어 코드 재사용률이 매우 낮습니다. 또 다른 예로는 프런트엔드와 백엔드가 상호 의존적이어서 테스트가 어렵고 개발 효율성이 매우 낮습니다.

Model2 시대: Servlet을 공부하고 관련 데모를 해본 친구들은 Java Bean(모델) + JSP(View) + Servlet(Controller)의 개발 모델을 이해해야 합니다. 이것이 초기 Java Web MVC 개발 모델입니다. 모델은 시스템에 관련된 데이터입니다. 즉, 뷰는 단지 표시를 위해 모델의 데이터를 표시하는 데 사용됩니다. 컨트롤러는 처리를 위해 사용자 요청을 서블릿에 보내고 데이터를 JSP에 반환합니다. 사용자.

Model2 모드에는 여전히 많은 문제가 있습니다. Model2의 추상화 및 캡슐화 수준은 아직 충분하지 않습니다. 개발에 Model2를 사용하는 경우 휠을 다시 개발해야 하므로 프로그램의 유지 관리성과 재사용성이 크게 떨어집니다. 그 결과 Struts2 등 Java 웹 개발과 관련된 MVC 프레임워크가 많이 등장하게 되었지만, Struts2는 상대적으로 번거로워서 Spring 경량 개발 프레임워크의 인기로 인해 Spring 생태계에 Spring MVC 프레임워크가 등장하게 되었습니다. Spring MVC는 현재 최고의 MVC 프레임워크입니다. Struts2에 비해 Spring MVC는 사용이 더 간단하고 편리하며 개발 효율성이 더 높으며 Spring MVC가 더 빠르게 실행됩니다.

MVC는 디자인 패턴이고 Spring MVC는 뛰어난 MVC 프레임워크입니다. Spring MVC는 보다 간결한 웹 레이어를 개발하는 데 도움이 되며 자연스럽게 Spring 프레임워크와 통합됩니다. Spring MVC에서는 일반적으로 백엔드 프로젝트를 서비스 계층(처리 비즈니스), Dao 계층(데이터베이스 작업), 엔터티 계층(엔티티 클래스), 컨트롤러 계층(프런트엔드 페이지에 데이터를 반환하는 제어 계층)으로 나눕니다.

Spring MVC의 간단한 도식 다이어그램은 다음과 같습니다.

Spring MVC의 작동 원리에 대해 이야기해 보세요.

프로세스 설명:

1. 클라이언트(브라우저)가 직접 요청을 보냅니다. DispatcherServlet.

2.DispatcherServlet은 요청 정보를 기반으로 HandlerMapping을 호출하고 요청에 해당하는 Handler를 파싱합니다.

3. 해당 핸들러(일반적으로 컨트롤러라고 함)로 구문 분석합니다.

4.HandlerAdapter는 Handler를 기반으로 실제 프로세서를 호출하여 요청을 처리하고 해당 비즈니스 로직을 실행합니다.

5. 프로세서는 비즈니스 처리를 마친 후 ModelAndView 개체를 반환합니다. Model은 반환된 데이터 개체이고 View는 논리적 보기입니다.

6. ViewResolver는 논리적 뷰를 기반으로 실제 뷰를 찾습니다.

7.DispatcherServlet은 반환된 Model을 View(뷰 렌더링)에 전달합니다.

8. 요청자(브라우저)에게 뷰를 반환합니다.

##Spring 프레임워크에서는 어떤 디자인 패턴이 사용되나요?

  1. Factory 디자인 패턴: Spring은 BeanFactory 및 ApplicationContext를 통해 Bean 객체를 생성하기 위해 팩토리 패턴을 사용합니다.
  2. 프록시 디자인 패턴: Spring AOP 기능 구현.
  3. 싱글톤 디자인 패턴: Spring의 Bean은 기본적으로 싱글톤입니다.
  4. Template 메소드 패턴: jdbcTemplate, hibernateTemplate 및 Spring에서 Template으로 끝나는 기타 클래스는 데이터베이스에서 작동하며 템플릿 패턴을 사용합니다.
  5. 래퍼 디자인 패턴: 우리 프로젝트는 여러 데이터베이스에 연결해야 하며, 다양한 고객이 방문할 때마다 필요에 따라 다양한 데이터베이스에 액세스하게 됩니다. 이 모델을 사용하면 고객 요구에 따라 다양한 데이터 소스 간에 동적으로 전환할 수 있습니다.
  6. Observer 패턴: Spring 이벤트 중심 모델은 Observer 패턴의 고전적인 응용 프로그램입니다.
  7. 어댑터 모드: Spring AOP 향상 또는 알림(Advice)은 어댑터 모드를 사용하고 Spring MVC도 컨트롤러를 적응시키기 위해 어댑터 모드를 사용합니다.

@Component와 @Bean의 차이점은 무엇인가요?

  1. 다양한 물체에 반응해보세요. @Component 주석은 클래스에 대해 작동하고 @Bean 주석은 메소드에 대해 작동합니다.
  2. @Component 주석은 일반적으로 클래스 경로 검색을 통해 자동으로 감지되고 Spring 컨테이너에 자동으로 어셈블됩니다(@ComponentScan 주석을 사용하여 검색할 경로를 정의할 수 있음). @Bean 주석은 일반적으로 이 Bean을 생성하기 위해 주석으로 표시된 메소드에 정의되어 Spring에게 이것이 특정 클래스의 인스턴스이고 이를 사용해야 할 때 나에게 반환된다는 것을 알려줍니다.
  3. @Bean 주석은 @Component 주석보다 사용자 정의가 더 용이하며 많은 곳에서 Bean은 @Bean 주석을 통해서만 등록할 수 있습니다. 예를 들어, 타사 라이브러리를 참조하는 클래스를 Spring 컨테이너로 조합해야 하는 경우 @Bean 주석을 통해서만 달성할 수 있습니다.

@Bean 주석 사용 예:

@Configurationpublic class AppConfig {    @Bean    public TransferService transferService() {        return new TransferServiceImpl();    }}复制代码
로그인 후 복사

위 코드는 다음 XML 구성과 동일합니다.

<beans>    <bean id="transferService" class="com.common.TransferServiceImpl"/></beans>复制代码
로그인 후 복사

다음 예는 @Component 주석을 통해 달성할 수 없습니다.

@Beanpublic OneService getService(status) {    case (status)  {        when 1:                return new serviceImpl1();        when 2:                return new serviceImpl2();        when 3:                return new serviceImpl3();    }}复制代码
로그인 후 복사

将一个类声明为Spring的bean的注解有哪些?

我们一般使用@Autowired注解去自动装配bean。而想要把一个类标识为可以用@Autowired注解自动装配的bean,可以采用以下的注解实现:

  1. @Component注解。通用的注解,可标注任意类为Spring组件。如果一个Bean不知道属于哪一个层,可以使用@Component注解标注。
  2. @Repository注解。对应持久层,即Dao层,主要用于数据库相关操作。
  3. @Service注解。对应服务层,即Service层,主要涉及一些复杂的逻辑,需要用到Dao层(注入)。
  4. @Controller注解。对应Spring MVC的控制层,即Controller层,主要用于接受用户请求并调用Service层的方法返回数据给前端页面。

Spring事务管理的方式有几种?

  1. 编程式事务:在代码中硬编码(不推荐使用)。
  2. 声明式事务:在配置文件中配置(推荐使用),分为基于XML的声明式事务和基于注解的声明式事务。

Spring事务中的隔离级别有哪几种?

在TransactionDefinition接口中定义了五个表示隔离级别的常量:

**ISOLATION_DEFAULT:**使用后端数据库默认的隔离级别,Mysql默认采用的REPEATABLE_READ隔离级别;Oracle默认采用的READ_COMMITTED隔离级别。

**ISOLATION_READ_UNCOMMITTED:**最低的隔离级别,允许读取尚未提交的数据变更,可能会导致脏读、幻读或不可重复读。

**ISOLATION_READ_COMMITTED: **동시 트랜잭션에 의해 제출된 데이터 읽기를 허용하여 더티 읽기를 방지할 수 있지만 팬텀 읽기 또는 반복 불가능한 읽기가 계속 발생할 수 있습니다.

**ISOLATION_REPEATABLE_READ:** 동일한 데이터에 대한 다중 읽기 결과 field 데이터가 트랜잭션 자체에 의해 수정되지 않는 한 모두 일관성을 유지하므로 더티 읽기 및 반복 불가능한 읽기를 방지할 수 있지만 팬텀 읽기는 여전히 발생할 수 있습니다.

**ISOLATION_SERIALIZABLE: **ACID 격리 수준을 완전히 준수하는 가장 높은 격리 수준입니다. 모든 트랜잭션은 순서대로 하나씩 실행되므로 트랜잭션 간 간섭 가능성이 없습니다. 즉, 이 수준에서는 더티 읽기(dirty read), 반복 불가능한 읽기 및 팬텀 읽기(phantom read)를 방지할 수 있습니다. 그러나 이는 프로그램 성능에 심각한 영향을 미칩니다. 일반적으로 이 수준은 사용되지 않습니다.

Spring 트랜잭션의 트랜잭션 전파 동작 유형은 무엇입니까?

트랜잭션 전파 동작을 나타내는 8개의 상수가 TransactionDefinition 인터페이스에 정의되어 있습니다.

현재 트랜잭션 지원:

**PROPAGATION_REQUIRED: **현재 트랜잭션이 존재하는 경우 트랜잭션에 참여하고, 현재 트랜잭션이 없으면 새 트랜잭션을 생성합니다.

PROPAGATION_SUPPORTS: 현재 트랜잭션이 있는 경우 트랜잭션에 참여하고, 현재 트랜잭션이 없으면 비트랜잭션 방식으로 계속 실행합니다.

PROPAGATION_MANDATORY: 현재 거래가 있으면 거래에 참여하고, 현재 거래가 없으면 예외를 발생시킵니다. (필수: 필수).

현재 거래가 지원되지 않습니다.

PROPAGATION_REQUIRES_NEW: 현재 거래가 존재하는 경우 현재 거래를 일시 중지합니다.

PROPAGATION_NOT_SUPPORTED: 비트랜잭션 모드로 실행됩니다. 현재 트랜잭션이 존재하는 경우 현재 트랜잭션이 일시 중지됩니다.

PROPAGATION_NEVER: 비트랜잭션 모드에서 실행되며 현재 트랜잭션이 존재하는 경우 예외가 발생합니다.

###기타 상황:

PROPAGATION_NESTED: 현재 트랜잭션이 존재하는 경우 현재 트랜잭션의 중첩 트랜잭션으로 실행할 트랜잭션을 생성합니다. 현재 트랜잭션이 없으면 값은 PROPAGATION_REQUIRED와 동일합니다.

End

이번 컨텐츠도 마스터하시고 계속 응원해주시길 바라겠습니다. 감사합니다.

더 많은 관련 무료 학습 권장 사항: mysql 튜토리얼(동영상)

위 내용은 모으다! 봄이 마스터해야 할 것의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25 : Myrise에서 모든 것을 잠금 해제하는 방법
4 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

Spring Boot가 OpenAI를 만났을 때 새로운 프로그래밍 패러다임 Spring Boot가 OpenAI를 만났을 때 새로운 프로그래밍 패러다임 Feb 01, 2024 pm 09:18 PM

2023년에는 AI 기술이 화두가 되면서 다양한 산업, 특히 프로그래밍 분야에 큰 영향을 미치고 있다. 사람들은 AI 기술의 중요성을 점점 더 인식하고 있으며 Spring 커뮤니티도 예외는 아닙니다. GenAI(일반 인공 지능) 기술이 지속적으로 발전함에 따라 AI 기능을 갖춘 애플리케이션 생성을 단순화하는 것이 중요하고 시급해졌습니다. 이러한 배경에서 AI 기능 애플리케이션 개발 프로세스를 단순화하고 간단하고 직관적이며 불필요한 복잡성을 피하는 것을 목표로 하는 "SpringAI"가 등장했습니다. 'SpringAI'를 통해 개발자는 AI 기능이 포함된 애플리케이션을 더욱 쉽게 구축할 수 있어 사용 및 운영이 더욱 쉬워진다.

Spring Boot 및 Spring AI를 사용하여 생성 인공 지능 애플리케이션 구축 Spring Boot 및 Spring AI를 사용하여 생성 인공 지능 애플리케이션 구축 Apr 28, 2024 am 11:46 AM

업계 리더인 Spring+AI는 강력하고 유연한 API와 고급 기능을 통해 다양한 산업에 선도적인 솔루션을 제공합니다. 이 주제에서는 다양한 분야의 Spring+AI 적용 사례를 살펴보겠습니다. 각 사례에서는 Spring+AI가 어떻게 특정 요구 사항을 충족하고 목표를 달성하며 이러한 LESSONSLEARNED를 더 넓은 범위의 애플리케이션으로 확장하는지 보여줍니다. 이 주제가 여러분이 Spring+AI의 무한한 가능성을 더 깊이 이해하고 활용하는 데 영감을 줄 수 있기를 바랍니다. Spring 프레임워크는 소프트웨어 개발 분야에서 20년 이상의 역사를 가지고 있으며, Spring Boot 1.0 버전이 출시된 지 10년이 되었습니다. 이제 봄이 왔다는 것에 대해 누구도 이의를 제기할 수 없습니다.

Spring 프로그래밍 방식 트랜잭션의 구현 방법은 무엇입니까? Spring 프로그래밍 방식 트랜잭션의 구현 방법은 무엇입니까? Jan 08, 2024 am 10:23 AM

Spring 프로그래밍 방식 트랜잭션을 구현하는 방법: 1. TransactionCallback 및 TransactionCallbackWithoutResult를 사용합니다. 3. Transactional 주석을 사용합니다. 4. @Transactional과 함께 TransactionTemplate을 사용합니다.

Java Spring에서 예약된 작업을 구현하는 방법 Java Spring에서 예약된 작업을 구현하는 방법 May 24, 2023 pm 01:28 PM

Java는 예약된 작업을 구현합니다. Jdk와 함께 제공되는 라이브러리에는 예약된 작업을 구현하는 두 가지 방법이 있습니다. 하나는 Timer이고 다른 하나는 ScheduledThreadPoolExecutor입니다. Timer+TimerTask가 Timer를 생성하면 TimerTask 작업을 예약하는 데 사용할 수 있는 스레드가 생성됩니다. Timer에는 4가지 구성 방법이 있으며, Timer 스레드의 이름과 데몬 스레드로 설정할지 여부를 지정할 수 있습니다. 기본 이름은 Timer-number이고 기본값은 데몬 스레드가 아닙니다. 주로 세 가지 중요한 메서드가 있습니다. cancel(): 작업 예약을 종료하고 현재 예약된 모든 작업을 취소합니다. purge(): 작업 대기열에서 작업을 제거합니다.

Spring Boot와 Spring Cloud의 차이점과 연결 Spring Boot와 Spring Cloud의 차이점과 연결 Jun 22, 2023 pm 06:25 PM

SpringBoot와 SpringCloud는 모두 개발자가 마이크로서비스 애플리케이션을 더 빠르게 구축하고 배포하는 데 도움이 되는 Spring Framework의 확장이지만 각각 다른 목적과 기능을 가지고 있습니다. SpringBoot는 Java 애플리케이션을 빠르게 구축하기 위한 프레임워크로, 개발자가 Spring 기반 애플리케이션을 더 빠르게 생성하고 배포할 수 있도록 해줍니다. 독립 실행형 실행 가능한 Spring 애플리케이션을 구축하는 간단하고 이해하기 쉬운 방법을 제공합니다.

역사상 가장 강력한 조직, Spring에서 가장 많이 사용되는 7가지 Annotation! 역사상 가장 강력한 조직, Spring에서 가장 많이 사용되는 7가지 Annotation! Jul 26, 2023 pm 04:38 PM

기술의 업데이트와 반복으로 Java5.0은 주석을 지원하기 시작했습니다. Java의 선도적인 프레임워크인 Spring은 버전 2.5로 업데이트된 이후 천천히 xml 구성을 포기하기 시작했으며 더 많은 주석이 spring 프레임워크를 제어하는 ​​데 사용됩니다.

Spring에서 트랜잭션 격리 수준을 설정하는 방법 Spring에서 트랜잭션 격리 수준을 설정하는 방법 Jan 26, 2024 pm 05:38 PM

Spring에서 트랜잭션 격리 수준을 설정하는 방법: 1. @Transactional 주석을 사용합니다. 2. Spring 구성 파일에서 설정합니다. 3. PlatformTransactionManager를 사용합니다. 4. Java 구성 클래스에서 설정합니다. 자세한 소개: 1. @Transactional 주석을 사용하고, 트랜잭션 관리가 필요한 클래스나 메소드에 @Transactional 주석을 추가하고, 속성에서 격리 수준을 설정합니다. 2. Spring 구성 파일에서 등.

Spring Cloud를 처음부터 배우세요 Spring Cloud를 처음부터 배우세요 Jun 22, 2023 am 08:11 AM

Java 개발자로서 Spring 프레임워크를 배우고 사용하는 것은 필수적인 기술입니다. 클라우드 컴퓨팅과 마이크로서비스의 인기로 인해 Spring Cloud를 배우고 사용하는 것은 반드시 숙달해야 하는 또 다른 기술이 되었습니다. SpringCloud는 분산 시스템을 빠르게 구축하기 위한 SpringBoot 기반 개발 도구 세트입니다. 개발자에게 서비스 등록 및 검색, 구성 센터, 로드 밸런싱 및 회로 차단기 등을 포함한 일련의 구성 요소를 제공하여 개발자가 마이크로 구축을 가능하게 합니다.

See all articles