[[toc]]

第六节 案例

1、准备工作

①创建实体类

public class Movie {

  1. private String movieId;<br /> private String movieName;<br /> private Double moviePrice;<br /> ……

②创建Service

[1]接口

public interface MovieService {

List<Movie> getAll();

Movie getMovieById(String movieId);

void saveMovie(Movie movie);

void updateMovie(Movie movie);

void removeMovieById(String movieId);

}

[2]接口的实现类

@Service
public class MovieServiceImpl implements MovieService {

private static Map<String ,Movie> movieMap;

static {

    movieMap = new HashMap<>();

    String movieId = null;<br />        Movie movie = null;

    movieId = UUID.randomUUID().toString().replace("-", "").toUpperCase();<br />        movie = new Movie(movieId, "肖申克救赎", 10.0);<br />        movieMap.put(movieId, movie);

    movieId = UUID.randomUUID().toString().replace("-", "").toUpperCase();<br />        movie = new Movie(movieId, "泰坦尼克号", 20.0);<br />        movieMap.put(movieId, movie);

    movieId = UUID.randomUUID().toString().replace("-", "").toUpperCase();<br />        movie = new Movie(movieId, "审死官", 30.0);<br />        movieMap.put(movieId, movie);

    movieId = UUID.randomUUID().toString().replace("-", "").toUpperCase();<br />        movie = new Movie(movieId, "大话西游之大圣娶亲", 40.0);<br />        movieMap.put(movieId, movie);

    movieId = UUID.randomUUID().toString().replace("-", "").toUpperCase();<br />        movie = new Movie(movieId, "大话西游之仙履奇缘", 50.0);<br />        movieMap.put(movieId, movie);

    movieId = UUID.randomUUID().toString().replace("-", "").toUpperCase();<br />        movie = new Movie(movieId, "功夫", 60.0);<br />        movieMap.put(movieId, movie);

    movieId = UUID.randomUUID().toString().replace("-", "").toUpperCase();<br />        movie = new Movie(movieId, "大内密探凌凌漆", 70.0);<br />        movieMap.put(movieId, movie);

    movieId = UUID.randomUUID().toString().replace("-", "").toUpperCase();<br />        movie = new Movie(movieId, "食神", 80.0);<br />        movieMap.put(movieId, movie);

    movieId = UUID.randomUUID().toString().replace("-", "").toUpperCase();<br />        movie = new Movie(movieId, "西游降魔篇", 90.0);<br />        movieMap.put(movieId, movie);

    movieId = UUID.randomUUID().toString().replace("-", "").toUpperCase();<br />        movie = new Movie(movieId, "西游伏妖篇", 11.0);<br />        movieMap.put(movieId, movie);

    movieId = UUID.randomUUID().toString().replace("-", "").toUpperCase();<br />        movie = new Movie(movieId, "三傻大闹宝莱坞", 12.0);<br />        movieMap.put(movieId, movie);

    movieId = UUID.randomUUID().toString().replace("-", "").toUpperCase();<br />        movie = new Movie(movieId, "唐人街探案", 13.0);<br />        movieMap.put(movieId, movie);

    movieId = UUID.randomUUID().toString().replace("-", "").toUpperCase();<br />        movie = new Movie(movieId, "一个人的武林", 14.0);<br />        movieMap.put(movieId, movie);

    movieId = UUID.randomUUID().toString().replace("-", "").toUpperCase();<br />        movie = new Movie(movieId, "罗马假日", 15.0);<br />        movieMap.put(movieId, movie);

    movieId = UUID.randomUUID().toString().replace("-", "").toUpperCase();<br />        movie = new Movie(movieId, "花季雨季", 16.0);<br />        movieMap.put(movieId, movie);

    movieId = UUID.randomUUID().toString().replace("-", "").toUpperCase();<br />        movie = new Movie(movieId, "夏洛特烦恼", 17.0);<br />        movieMap.put(movieId, movie);<br />    }

@Override<br />    public List<Movie> getAll() {<br />        return new ArrayList<>(movieMap.values());<br />    }

@Override<br />    public Movie getMovieById(String movieId) {<br />        return movieMap.get(movieId);<br />    }

@Override<br />    public void saveMovie(Movie movie) {<br />        String movieId = UUID.randomUUID().toString().replace("-", "");

    movie.setMovieId(movieId);

    movieMap.put(movieId, movie);<br />    }

@Override<br />    public void updateMovie(Movie movie) {

    String movieId = movie.getMovieId();

    movieMap.put(movieId, movie);

}

@Override<br />    public void removeMovieById(String movieId) {<br />        movieMap.remove(movieId);<br />    }<br />}

③测试Service

@SpringJUnitConfig(locations = {“classpath:spring-mvc.xml”})
public class MovieTest {

@Autowired<br />    private MovieService movieService;

@Test<br />    public void testServiceGetAll() {<br />        List<Movie> list = movieService.getAll();<br />        for (Movie movie : list) {<br />            System.out.println("movie = " + movie);<br />        }<br />    }

@Test<br />    public void testServiceGetById() {<br />        List<Movie> movieList = movieService.getAll();<br />        for (Movie movie : movieList) {<br />            String movieId = movie.getMovieId();<br />            Movie movieById = movieService.getMovieById(movieId);<br />            System.out.println("movieById = " + movieById);<br />        }<br />    }

@Test<br />    public void testGetOne() {<br />        Movie movie = movieService.getMovieById("178E6B0B0DA14DC59141E06FFA620673");<br />        System.out.println("movie = " + movie);<br />    }

@Test<br />    public void testServiceRemoveById() {<br />        List<Movie> movieList = movieService.getAll();<br />        for (Movie movie : movieList) {<br />            String movieId = movie.getMovieId();<br />            movieService.removeMovieById(movieId);<br />        }

    movieList = movieService.getAll();<br />        for (Movie movie : movieList) {<br />            System.out.println("movie = " + movie);<br />        }<br />    }

@Test<br />    public void testServiceSave() {<br />        movieService.saveMovie(new Movie(null, "aa", 111.11));

    List<Movie> all = movieService.getAll();<br />        for (Movie movie : all) {<br />            System.out.println("movie = " + movie);<br />        }<br />    }

@Test<br />    public void testServiceUpdate() {<br />        List<Movie> all = movieService.getAll();<br />        for (Movie movie : all) {<br />            String movieId = movie.getMovieId();<br />            String movieName = movie.getMovieName() + "~";

        Movie movieNew = new Movie(movieId, movieName, movie.getMoviePrice());<br />            movieService.updateMovie(movieNew);<br />        }

    List<Movie> movieList = movieService.getAll();<br />        for (Movie movie : movieList) {<br />            System.out.println("movie = " + movie);<br />        }<br />    }

}

2、搭建环境

①引入依赖




org.springframework
spring-webmvc
5.3.1


ch.qos.logback
logback-classic
1.2.3


javax.servlet
javax.servlet-api
3.1.0
provided


org.thymeleaf
thymeleaf-spring5
3.0.12.RELEASE

org.junit.jupiter
junit-jupiter-api
5.7.0
test


org.springframework
spring-test
5.3.1

②加入配置文件

[1]web.xml


dispatcherServlet
org.springframework.web.servlet.DispatcherServlet

contextConfigLocation
classpath:spring-mvc.xml

1


dispatcherServlet
/


characterEncodingFilter
org.springframework.web.filter.CharacterEncodingFilter

encoding
UTF-8


forceRequestEncoding
true


forceResponseEncoding
true



characterEncodingFilter
/*

[2]日志配置文件

<?xml version=”1.0” encoding=”UTF-8”?>


class=”ch.qos.logback.core.ConsoleAppender”>



[%d{HH:mm:ss.SSS}] [%-5level] [%thread] [%logger] [%msg]%n

<!-- 设置全局日志级别。日志级别按顺序分别是:DEBUG、INFO、WARN、ERROR --><br />    <!-- 指定任何一个日志级别都只打印当前级别和后面级别的日志。 --><br />    <root level="INFO"><br />        <!-- 指定打印日志的appender,这里通过“STDOUT”引用了前面配置的appender --><br />        <appender-ref ref="STDOUT" /><br />    </root>

<!-- 根据特殊需求指定局部日志级别 --><br />    <logger name="org.springframework.web.servlet.DispatcherServlet" level="DEBUG" />

[3]SpringMVC 配置文件




















3、功能清单

上一节 回目录