๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
Legacy

2022.03.14์˜ ๊ธฐ๋ก

by GroovyArea 2022. 3. 14.

โ–ถ 3์ผ ๊ณ„ํš

=>  ๊ณต๋ถ€ ๊ด€๋ จ

1) ์ˆ˜์—… ๋‚ด์šฉ ๋ณต์Šต

2) MVC ๊ฐ์ฒด์ง€ํ–ฅ ๋ฆฌํŒฉํ† ๋ง

3) ์Šคํ”„๋ง ๊ฐ•์˜ ์ˆ˜๊ฐ•

๋ถ€์ง€๋Ÿฐํžˆ ์ˆ˜๊ฐ•ํ•˜์ž

 

=> ํŒŒ์ด๋„ ํ”„๋กœ์ ํŠธ ๊ด€๋ จ

1) ๋…ธ์…˜์— ํ”ผ๋“œ๋ฐฑ ์ •๋ฆฌ

 


โ–ถ ๋ฌธ์ œ ์ •๋ฆฌ

1. ์ธํ…”๋ฆฌ์ œ์ด ๋ฉ”์ด๋ธ ๋นŒ๋“œ ํ›„ jar ํŒŒ์ผ์„ ์ฐพ๋˜ ๋„์ค‘ ์—๋Ÿฌ ๋ฐœ์ƒ

> ๊ฒฝ๋กœ๋ฅผ ์ฐพ์•„์„œ ํ•ด๊ฒฐ

์—ฌ๊ธฐ ์ˆจ๊ฒจ์ ธ ์žˆ์—ˆ๋‹ค.

2. ์ด๋ฆ„ ๊ฒ€์ƒ‰์„ FirstName์œผ๋กœ ๋ฐ”๊พธ๊ธฐ

@GetMapping("/owners")
public String processFindForm(@RequestParam(defaultValue = "1") int page, Owner owner, BindingResult result,
      Model model) {

   // allow parameterless GET request for /owners to return all records
   if (owner.getFirstName() == null) {
      owner.setFirstName(""); // empty string signifies broadest possible search
   }

   // find owners by first name
   String firstName = owner.getFirstName();
   Page<Owner> ownersResults = findPaginatedForOwnersFirstName(page, firstName);
   if (ownersResults.isEmpty()) {
      // no owners found
      result.rejectValue("lastName", "notFound", "not found");
      return "owners/findOwners";
   }
   else if (ownersResults.getTotalElements() == 1) {
      // 1 owner found
      owner = ownersResults.iterator().next();
      return "redirect:/owners/" + owner.getId();
   }
   else {
      // multiple owners found
      firstName = owner.getLastName();
      return addPaginationModel(page, model, firstName, ownersResults);
   }
}

=> ํŒŒ๋ผ๋ฏธํ„ฐ ๊ฐ’๊ณผ ๋ฉ”์„œ๋“œ๋ฅผ ๋งŒ๋“ค์–ด ๋ณ€๊ฒฝ

 

@Query("SELECT DISTINCT owner FROM Owner owner left join  owner.pets WHERE owner.firstName LIKE :firstName% ")
@Transactional(readOnly = true)
Page<Owner> findByFirstName(String firstName, Pageable pageable);

=> ์ธํ„ฐํŽ˜์ด์Šค SQL๋ฌธ ๋ณ€๊ฒฝ


โ–ถ ๊ฐœ์ธ ๊ณต๋ถ€

 

1. ์ฝ”๋“œ์˜ flow๋ฅผ ์ฝ๋Š” ๋ฐฉ๋ฒ•

๋กœ๊ทธ๋ฅผ ๋ถ„์„ํ•ด์„œ ๋ณธ๋‹ค
๋””๋ฒ„๊ทธ ์‹คํ–‰
์ฒดํฌ ํฌ์ธํŠธ์— ์ฝ”๋“œ๊ฐ€ ๊ฑธ๋ฆฐ ๊ฒƒ์„ ํ™•์ธ ๊ฐ€๋Šฅํ•˜๋ฉฐ ์–ด๋–ค ๊ฐ์ฒด์ธ์ง€๋„ ํ™•์ธ ๊ฐ€๋Šฅํ•˜๋‹ค.


โ–ถ ์ˆ˜์—… ๋‚ด์šฉ

 

Spring DAO

  • Data Access Framework
  • Templete Method Pattern

 

DAO ํด๋ž˜์Šค ์ž‘์„ฑ

  • spring - jdbc ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋นŒ๋“œ ์ฒ˜๋ฆฌ
  • ⇒ JdbcTemplate ํด๋ž˜์Šค์˜ ํ…œํ”Œ๋ฆฟ ๋ฉ”์„œ๋“œ๋ฅผ ํ˜ธ์ถœํ•˜์—ฌ DAO ํด๋ž˜์Šค ์ž‘์„ฑ

JdbcTemplate ๊ฐ์ฒด๋ฅผ ์ด์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•

  • ⇒ JdbcTemplate ๊ฐ์ฒด๋ฅผ Spring Container์—๊ฒŒ ์ œ๊ณต๋ฐ›์•„ ํ•„๋“œ์— ์ €์žฅ - DI
  • ⇒ JdbcDaoSupport ํด๋ž˜์Šค ์ƒ์†๋ฐ›์•„ JdbcTemplate ๊ฐ์ฒด๋ฅผ ์ €์žฅํ•œ ํ•„๋“œ ์„ ์–ธ

JdbcTemplate.update(String sql, Object ... object)

  • SQL ๋ช…๋ น (CRUD)๋ฅผ DBMS ์„œ๋ฒ„์— ์ „๋‹ฌํ•˜์—ฌ ์‹คํ–‰ํ•˜๋Š” ๋ฉ”์„œ๋“œ - ์กฐ์ž‘ํ–‰์˜ ๊ฐฏ์ˆ˜ ๋ฐ˜ํ™˜
  • ⇒ ๋งค๊ฐœ๋ณ€์ˆ˜์— SQL ๋ช…๋ น๊ณผ InParameter(?)์— ์ €์žฅ๋  ๊ฐ’์„ ์ฐจ๋ก€๋Œ€๋กœ ๋‚˜์—ดํ•˜์—ฌ ๋ฉ”์„œ๋“œ ํ˜ธ์ถœ

JdbcTemplate.queryForObject(String sql, RowMapper<T> rowMapper, Object... args )

  • ⇒ SQL ๋ช…๋ น(Select)์„ DBMS ์„œ๋ฒ„์— ์ „๋‹ฌํ•˜์—ฌ ์‹คํ–‰ํ•˜๋Š” ๋ฉ”์„œ๋“œ
  • ⇒ ๋‹จ์ผํ–‰์˜ ๊ฒ€์ƒ‰๊ฒฐ๊ณผ๋ฅผ ํ•˜๋‚˜์˜ ๊ฐ์ฒด(๊ฐ’)๋กœ ๋ฐ˜ํ™˜ํ•  ๊ฒฝ์šฐ ์‚ฌ์šฉ๋˜๋Š” ๋ฉ”์„œ๋“œ
  • ⇒ SQL ๋ช…๋ น, RowMapper ๊ฐ์ฒด, InParameter ์ „๋‹ฌ ๊ฐ’์„ ๋งค๊ฐœ๋ณ€์ˆ˜์— ์ฐจ๋ก€๋Œ€๋กœ ๋‚˜์—ดํ•˜์—ฌ ์ „๋‹ฌ
    • ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ๋ฅผ Java ๊ฐ์ฒด๋กœ ๋งคํ•‘ํ•˜์—ฌ ๋ฐ˜ํ™˜ํ•˜๊ธฐ ์œ„ํ•œ ๊ฐ์ฒด - ๋งคํ•‘ ์ •๋ณด ์ œ๊ณต (ResultSet ๊ณผ ๊ฐ™์€ ์—ญํ• )
    • ⇒ mapRow ๋ฉ”์„œ๋“œ๋ฅผ ์˜ค๋ฒ„๋ผ์ด๋“œ ์„ ์–ธํ•˜์—ฌ ๋งคํ•‘์ •๋ณด ์ œ๊ณต
    • ⇒ ์ œ๋„ˆ๋ฆญ์€ ๊ฒ€์ƒ‰ํ–‰์„ java ๊ฐ์ฒด๋กœ ํ‘œํ˜„ํ•˜๊ธฐ ์œ„ํ•œ ์ž๋ฃŒํ˜•(ํด๋ž˜์Šค) ์„ค์ •
  • RowMapper

EmptyResultDataAccessException

  • QueryForObject() ๋ฉ”์„œ๋“œ์— ์˜ํ•ด ์ „๋‹ฌ๋œ SQL ๋ช…๋ น์˜ ๊ฒ€์ƒ‰๊ฒฐ๊ณผ๊ฐ€ ์กด์žฌํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ ๋ฐœ์ƒ๋˜๋Š” ์˜ˆ์™ธ

JdbcTemplate.query(String sql, RowMapper<T> rowMapper, Object... args)

  • ⇒ SQL ๋ช…๋ น(Select)์„ DBMS ์„œ๋ฒ„์— ์ „๋‹ฌํ•˜์—ฌ ์‹คํ–‰ํ•˜๋Š” ๋ฉ”์„œ๋“œ
  • ⇒ ๋‹ค์ค‘ํ–‰์˜ ๊ฒ€์ƒ‰๊ฒฐ๊ณผ๋ฅผ List ๊ฐ์ฒด๋กœ ๋ฐ˜ํ™˜ํ•  ๊ฒฝ์šฐ ์‚ฌ์šฉ๋˜๋Š” ๋ฉ”์„œ๋“œ
  • ⇒ SQL ๋ช…๋ น, RowMapper ๊ฐ์ฒด, InParameter ์ „๋‹ฌ ๊ฐ’์„ ๋งค๊ฐœ๋ณ€์ˆ˜์— ์ฐจ๋ก€๋Œ€๋กœ ๋‚˜์—ดํ•˜์—ฌ ์ „๋‹ฌ

Spring MVC

&amp;amp;amp;amp;nbsp;๋ชจ๋ธ 1 &amp;amp;amp;amp;amp; ๋ชจ๋ธ 2์˜ ์žฅ๋‹จ์ 

 

controller &amp;amp;amp;amp;amp; view ๋งŒ ๋งŒ๋“ค๋ฉด ๋˜์ง€๋งŒ ์•Œ์•„์„œ ์ฒ˜๋ฆฌํ•˜๊ฒŒ ๋” ๋งŒ๋“ค์–ด์ฃผ๋Š”๊ฒŒ ์ ค ์ค‘์š”ํ•จ

 

Command Controller : ํด๋ผ์ด์–ธํŠธ์˜ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ํด๋ž˜์Šค - Model

  • => Spring Framework์—์„œ ์ œ๊ณตํ•˜๋Š” Controller ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ƒ์† ๋ฐ›์•„ ์ž‘์„ฑ
    • ํด๋ผ์ด์–ธํŠธ์˜ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ๋ช…๋ น์„ ์ž‘์„ฑํ•˜๋Š” ๋ฉ”์„œ๋“œ
    • ⇒ Front Controller(DispatcherServlet)์— ์˜ํ•ด ์ž๋™ ํ˜ธ์ถœ๋˜๋Š” ๋ฉ”์„œ๋“œ
    • ⇒ HttpServletRequest ๊ฐ์น˜์™€ HttpSerlvetResponse ๊ฐ์ฒด๋ฅผ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์ œ๊ณต ๋ฐ›์•„ ์š”์ฒญ ์ฒ˜๋ฆฌ (WAS ๊ฐ€ ์คŒ - ์ปจํ…Œ์ด๋„ˆ๊ฐ€ )
    • ⇒ View ๊ด€๋ จ ์ •๋ณด๋ฅผ ModelAndView ํด๋ž˜์Šค์˜ ๊ฐ์ฒด์— ์ €์žฅํ•˜์—ฌ ๋ฐ˜ํ™˜
    ModelAndView
    • ์‘๋‹ต ๊ด€๋ จ ์ •๋ณด๋ฅผ ์ €์žฅํ•˜๊ธฐ ์œ„ํ•œ ํด๋ž˜์Šค
    • ⇒ ์š”์ฒญ์— ๋Œ€ํ•œ ์ฒ˜๋ฆฌ ๊ฒฐ๊ณผ์™€ ๋ทฐ ํŽ˜์ด์ง€ ๊ด€๋ จ ์ •๋ณด๋ฅผ ์ €์žฅํ•˜์—ฌ Front Controller(DispatcherServlet)์—๊ฒŒ ์ „๋‹ฌ
    • ModelAndView.addObject(String attributeName, Object attributeValue)
    • ⇒ ModelAndView ๊ฐ์ฒด์— ์š”์ฒญ์— ๋Œ€ํ•œ ์ฒ˜๋ฆฌ ๊ฒฐ๊ณผ๋ฅผ ์ €์žฅํ•˜๊ธฐ ์œ„ํ•œ ๋ฉ”์„œ๋“œ
    • ⇒ HttpServletRequest.setAttribute() ๋ฉ”์„œ๋“œ์™€ ์œ ์‚ฌํ•œ ๊ธฐ๋Šฅ ์ œ๊ณต (๊ธฐ๋ณธ์ด request scope์ž„)
    • ๋ทฐํŽ˜์ด์ง€(JSP)์—์„œ EL๊ณผ JSTL์„ ์‚ฌ์šฉํ•˜์—ฌ ์‘๋‹ต ์ฒ˜๋ฆฌ
    • ModelAndView.ViewName(String viewName)
    • ๋ทฐ ํŽ˜์ด์ง€ ๊ด€๋ จ ์ •๋ณด(viewName)์„ ๋ณ€๊ฒฝํ•˜๋Š” ๋ฉ”์„œ๋“œ
  • handleRequest

pom.xml

https://mvnrepository.com/artifact/com.oracle.database.jdbc/ojdbc11

  • ⇒ JDBC ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๊ธฐ ์œ„ํ•œ Oracle Driver ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ

https://mvnrepository.com/artifact/org.apache.commons/commons-dbcp2

  • ⇒ Apache ๊ทธ๋ฃน์—์„œ ์ œ๊ณตํ•˜๋Š” Data Source ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ

https://mvnrepository.com/artifact/org.springframework/spring-jdbc

  • ⇒ SpringDAO ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ - DataSource ๊ด€๋ จ ๊ธฐ๋Šฅ
  • ⇒ spring-tx ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋„ ์˜์กด๊ด€๊ณ„์— ์˜ํ•ด ๋นŒ๋“œ ์ฒ˜๋ฆฌ : ํŠธ๋žœ์žญ์…˜ ๊ด€๋ฆฌ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ

Spring Configuration File

Apache ๊ทธ๋ฃน์—์„œ ์ œ๊ณตํ•˜๋Š” commons-dbcp2 ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ BasicDataSource ํด๋ž˜์Šค๋ฅผ Spring Bean์œผ๋กœ ๋“ฑ๋ก

  • ⇒ Connection ๊ฐ์ฒด ์ƒ์„ฑ ๊ด€๋ จ ์ •๋ณด๋ฅผ ํ•„๋“œ์— ์ „๋‹ฌํ•˜์—ฌ ์ €์žฅ - Setter Injection

Spring Framework์—์„œ ์ œ๊ณตํ•˜๋Š” spring-jdbc ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ DriverManagerDataSource ํด๋ž˜์Šค๋ฅผ Spring Bean์œผ๋กœ ๋“ฑ๋ก

  • => Connection ๊ฐ์ฒด ์ƒ์„ฑ ๊ด€๋ จ ์ •๋ณด๋ฅผ ํ•„๋“œ์— ์ „๋‹ฌํ•˜์—ฌ ์ €์žฅ - Setter Injection

์Šคํ”„๋ง ๋นˆ → ์ฐธ์กฐ(์ฃผ์ž…) jdbctemplate - > ์ฐธ์กฐ(์ฃผ์ž…) dao → ์ฐธ์กฐ(์ฃผ์ž…) service

Web.xml

  • WAS ์‹คํ–‰ ์‹œ ํ”„๋กœ์ ํŠธ ์ž์›์„ ์ปจํ…์ŠคํŠธ(์›น์ž์›)๋กœ ์ œ๊ณตํ•˜๊ธฐ ์œ„ํ•œ ์ •๋ณด๋ฅผ ์„ค์ •ํ•œ ํŒŒ์ผ
  • ⇒ ๋ฆฌ์Šค๋„ˆ ์„ค์ •, ํ•„ํ„ฐ ์„ค์ •, ์„œ๋ธ”๋ฆฟ ์„ค์ •, ์—๋Ÿฌ ํŽ˜์ด์ง€ ์„ค์ • ๋“ฑ

context-param

  • ์ปจํ…์ŠคํŠธ๋กœ ์กด์žฌํ•˜๋Š” ๋ชจ๋“  ํด๋ž˜์Šค์— ๊ฐ’์„ ์ œ๊ณตํ•˜๊ธฐ ์œ„ํ•œ ์—˜๋ฆฌ๋จผํŠธ
  • ๋ชจ๋“  ์›นํ”„๋กœ๊ทธ๋žจ(Front Controller)์—์„œ ๊ณตํ†ต์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•œ Spring Bean์„ ๋“ฑ๋กํ•˜๊ธฐ ์œ„ํ•ด ์ œ๊ณต๋˜๋Š” Bean Configuration File

listener

  • WAS ์‹คํ–‰ ์‹œ Listener ํด๋ž˜์Šค๋ฅผ ๊ฐ์ฒด๋กœ ์ƒ์„ฑํ•˜๊ธฐ ์œ„ํ•œ ์—˜๋ฆฌ๋จผํŠธ
  • Listener ํด๋ž˜์Šค : ServletContextListener ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ƒ์†๋ฐ›์€ ์ž์‹ํด๋ž˜์Šค⇒ contextDestroyed() ๋ฉ”์„œ๋“œ : Listener ๊ฐ์ฒด ์†Œ๋ฉธ ์ „ ์ž๋™์œผ๋กœ ํ˜ธ์ถœ๋˜๋Š” ๋ฉ”์„œ๋“œ - ๋งˆ๋ฌด๋ฆฌ ์ž‘์—…
    • Listener ํด๋ž˜์Šค๋ฅผ ์„ค์ •ํ•˜๊ธฐ ์œ„ํ•œ ์—˜๋ฆฌ๋จผํŠธ
    ContextLoaderListener
    • WebApplicationContext ๊ฐ์ฒด(Spring Container)๋ฅผ ์ƒ์„ฑํ•˜๊ณ  Bean Configuration File์„ ์ฝ์–ด Spring Bean์œผ๋กœ ๋“ฑ๋ก๋œ ๋ชจ๋“  ํด๋ž˜์Šค๋ฅผ ๊ฐ์ฒด๋กœ ์ƒ์„ฑํ•˜์—ฌ ์ปจํ…์ŠคํŠธ๋กœ ์กด์žฌํ•˜๋Š” ๋ชจ๋“  ํด๋ž˜์Šค์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ์ œ๊ณตํ•˜๋Š” Listener ํด๋ž˜์Šค
    • ๋ˆ„๊ตด ์ฝ์–ด? : context-param ์—˜๋ฆฌ๋จผํŠธ์˜ contextConfigLocation ์ด๋ฆ„์œผ๋กœ ์ œ๊ณต๋˜๋Š” ๊ฐ’์ด Bean Configuration File์ด๋‹ค.
    ์„œ๋ธ”๋ฆฟ์ด ์‚ฌ์šฉํ•  Bean Configuration File์„ ์—ฌ๋Ÿฌ๊ฐœ ๋“ฑ๋ก ๊ฐ€๋Šฅ
    • ⇒ Bean Configuration File ์„ ์—”ํ„ฐ or , or ; ์œผ๋กœ ๊ตฌ๋ถ„ํ•˜์—ฌ ์„ค์ •
    • ⇒ Annotation ๊ธฐ๋ฐ˜์˜ Bean Configuration File์€ ํ•˜๋‚˜๋งŒ ์ธ์‹๋˜์–ด ์ฒ˜๋ฆฌ
  • Listener-class
  • ⇒ contextInitialized() ๋ฉ”์„œ๋“œ : Listener ๊ฐ์ฒด ์ƒ์„ฑ ํ›„ ์ž๋™์œผ๋กœ ํ˜ธ์ถœ๋˜๋Š” ๋ฉ”์„œ๋“œ - ์ดˆ๊ธฐํ™” ์ž‘์—…

servlet

  • ์„œ๋ธ”๋ฆฟ ํด๋ž˜์Šค๋ฅผ ์›นํ”„๋กœ๊ทธ๋žจ(์„œ๋ธ”๋ฆฟ)์œผ๋กœ ๋“ฑ๋กํ•˜๋Š” ์—˜๋ฆฌ๋จผํŠธ
  • ⇒ Servlet ์—˜๋ฆฌ๋จผํŠธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Front Controller ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๋Š” ์›นํ”„๋กœ๊ทธ๋žจ์„ ์—ฌ๋Ÿฌ๊ฐœ ๋“ฑ๋ก ๊ฐ€๋Šฅ
  • ⇒ DispatcherServlet ํด๋ž˜์Šค(Front Controller)๋ฅผ ์›นํ”„๋กœ๊ทธ๋žจ์œผ๋กœ ๋“ฑ๋ก
    • Servlet ํด๋ž˜์Šค์—์„œ ํ•„์š”ํ•œ ๊ฐ’์„ ์ œ๊ณตํ•˜๊ธฐ ์œ„ํ•œ ์—˜๋ฆฌ๋จผํŠธ
    DispatcherServlet
    • ํด๋ผ์ด์–ธํŠธ์˜ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด Spring Framework์—์„œ ์ œ๊ณตํ•˜๋Š” Front Controller ํด๋ž˜์Šค
    • ⇒ WebApplicationContext ๊ฐ์ฒด๋กœ Bean Configuration File์„ ์ฝ์–ด Spring Bean์œผ๋กœ ๋“ฑ๋ก๋œ ๋ชจ๋“  ํด๋ž˜์Šค๋ฅผ ๊ฐ์ฒด๋กœ ์ƒ์„ฑํ•˜์—ฌ ์„œ๋ธ”๋ฆฟ์—์„œ ์‚ฌ์šฉ๋˜๋„๋ก ์ œ๊ณต
  • init-param

load-on-startup

  • WAS ์‹คํ–‰ ์‹œ ์„œ๋ธ”๋ฆฟ ํด๋ž˜์Šค๋ฅผ ๊ฐ์ฒด๋กœ ์ƒ์„ฑํ•˜๊ธฐ ์œ„ํ•œ ์—˜๋ฆฌ๋จผํŠธ
  • ⇒ ํด๋ผ์ด์–ธํŠธ์˜ ์š”์ฒญ ์—†์ด WAS ์‹คํ–‰ ์‹œ ๋ฏธ๋ฆฌ ์„œ๋ธ”๋ฆฟ ํด๋ž˜์Šค๋ฅผ ๊ฐ์ฒด๋กœ ์ƒ์„ฑํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ
  • ⇒ ์—˜๋ฆฌ๋จผํŠธ ๊ฐ’์€ 0๋ณด๋‹ค ํฐ ์ •์ˆ˜๊ฐ’์„ ์‚ฌ์šฉํ•˜๋ฉฐ ๊ฐ’์ด ์ž‘์„ ์ˆ˜๋ก ๋จผ์ € ๊ฐ์ฒด๋กœ ์ƒ์„ฑ

servlet-mapping

  • ์›นํ”„๋กœ๊ทธ๋žจ(์„œ๋ธ”๋ฆฟ) ์‹คํ–‰์„ ์œ„ํ•ด ์š”์ฒญํ•  URL ์ฃผ์†Œ๋ฅผ ์„ค์ •ํ•˜๋Š” ์—˜๋ฆฌ๋จผํŠธ

param bean configuration File

SimpleUrlHandlerMapping

  • Front Controller(DispatcherServlet)์—๊ฒŒ ํด๋ผ์ด์–ธํŠธ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ Command Controller ํด๋ž˜์Šค์˜ Spring Bean์˜ beanName์„ ์ œ๊ณตํ•˜๊ธฐ ์œ„ํ•œ ํด๋ž˜์Šค
  • ⇒ mappings ํ•„๋“œ์— Map ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜์—ฌ ์ธ์ ์…˜ ์ฒ˜๋ฆฌ
  • ⇒ ํด๋ผ์ด์–ธํŠธ์˜ ์š”์ฒญ ์ •๋ณด (Key : String)์™€ Command Controller ํด๋ž˜์Šค์˜ Spring Bean(Value : String)์˜ Map ๊ฐ์ฒด์˜ ์—”ํŠธ๋ฆฌ๋กœ ์ถ”๊ฐ€

Spring Framework์—์„œ ์ œ๊ณตํ•˜๋Š” InternalResourceViewResolver ํด๋ž˜์Šค๋ฅผ Spring Bean์œผ๋กœ ๋“ฑ๋ก

  • InternalResourceViewResolver : ๋ทฐ ์ด๋ฆ„(View Name)์„ ์ „๋‹ฌ๋ฐ›์•„ ์‘๋‹ตํ•  ๋ทฐํŽ˜์ด์ง€๋กœ(JSP)๋กœ ๋ณ€ํ™˜ํ•˜์—ฌ ์ œ๊ณตํ•˜๋Š” ํด๋ž˜์Šค
  • prefix ํ•„๋“œ์—๋Š” ๋ทฐ์ด๋ฆ„ ์•ž๋ถ€๋ถ„์— ์ถ”๊ฐ€๋  ๊ฐ’์„ ์ธ์ ์…˜ ์ฒ˜๋ฆฌ
  • suffix ํ•„๋“œ์—๋Š” ๋ทฐ์ด๋ฆ„ ๋’ท๋ถ€๋ถ„์— ์ถ”๊ฐ€๋  ๊ฐ’์„ ์ธ์ ์…˜ ์ฒ˜๋ฆฌ
๋ฐ˜์‘ํ˜•

'Legacy' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

2022.03.16์˜ ๊ธฐ๋ก  (0) 2022.03.16
2022.03.15์˜ ๊ธฐ๋ก  (0) 2022.03.15
2022.03.11~03.13์˜ ๊ธฐ๋ก  (2) 2022.03.12
2022.03.08~03.10 ์˜ ๊ธฐ๋ก  (0) 2022.03.09
2022.03.07 ์˜ ๊ธฐ๋ก  (0) 2022.03.07