Spring MVC入门 Code 记录
community
src
main
java
com.nowcoderbylia.community
config
AlphaConfig
package com.nowcoderbylia.community.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import java.text.SimpleDateFormat;
@Configuration
public class AlphaConfig {
@Bean
public SimpleDateFormat simpleDateFormat() {
return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
}
}
controller
AlphaController
package com.nowcoderbylia.community.controller;
import com.nowcoderbylia.community.service.AlphaService;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.servlet.ModelAndView;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.*;
@Controller
@RequestMapping("/alpha")
public class AlphaController {
@Autowired
private AlphaService alphaService;
@RequestMapping("/hello")
@ResponseBody
public String sayHello() {
return "Hello Spring Boot.";
}
@RequestMapping("/data")
@ResponseBody
public String getData() {
return alphaService.find();
}
@RequestMapping("/http")
public void http(HttpServletRequest request, HttpServletResponse response) {
System.out.println(request.getMethod());
System.out.println(request.getServletPath());
Enumeration<String> enumeration = request.getHeaderNames();
while (enumeration.hasMoreElements()) {
String name = enumeration.nextElement();
String value = request.getHeader(name);
System.out.println(name + ": " + value);
}
System.out.println(request.getParameter("code"));
response.setContentType("text/html; charset=utf-8" );
try (PrintWriter writer = response.getWriter()) {
writer.write("<h1>Nowcoder</h1>");
} catch (IOException e) {
throw new RuntimeException(e);
}
}
@RequestMapping(path = "/students", method = RequestMethod.GET)
@ResponseBody
public String getStudents(
@RequestParam(name = "current", required = false, defaultValue = "1") int current,
@RequestParam(name = "limit", required = false, defaultValue = "10")int limit) {
System.out.println(current);
System.out.println(limit);
return "some students";
}
@RequestMapping(path = "/student/{id}", method = RequestMethod.GET)
@ResponseBody
public String getStudent(@PathVariable("id") int id) {
System.out.println(id);
return "a student";
}
@RequestMapping(path = "/student", method = RequestMethod.POST)
@ResponseBody
public String saveStudent(String name, int age) {
System.out.println(name);
System.out.println(age);
return "success";
}
@RequestMapping(path = "/teacher", method = RequestMethod.GET)
public ModelAndView getTeacher() {
ModelAndView mav = new ModelAndView();
mav.addObject("name", "zhangsan");
mav.addObject("age","30");
mav.setViewName("/demo/view");
return mav;
}
@RequestMapping(path = "/school", method = RequestMethod.GET)
public String getSchool(Model model) {
model.addAttribute("name", "Peking University");
model.addAttribute("age", "100");
return "/demo/view";
}
@RequestMapping(path = "/emp", method = RequestMethod.GET)
@ResponseBody
public Map<String, Object> getEmp() {
Map<String, Object> emp = new HashMap<>();
emp.put("name", "zhangsan");
emp.put("age", 23);
emp.put("salary", 8000);
return emp;
}
@RequestMapping(path = "/emps", method = RequestMethod.GET)
@ResponseBody
public List<Map<String, Object>> getEmps() {
List<Map<String, Object>> emps = new ArrayList<>();
Map<String, Object> emp = new HashMap<>();
emp.put("name", "zhangsan");
emp.put("age", 23);
emp.put("salary", 8000);
emps.add(emp);
emp = new HashMap<>();
emp.put("name", "lisi");
emp.put("age", 32);
emp.put("salary", 5000);
emps.add(emp);
emp = new HashMap<>();
emp.put("name", "wangwu");
emp.put("age", 44);
emp.put("salary", 6000);
emps.add(emp);
return emps;
}
}
dao
AlphaDao.interface
package com.nowcoderbylia.community.dao;
public interface AlphaDao {
String select();
}
AlphaDaoHibernateImpl
package com.nowcoderbylia.community.dao;
import org.springframework.stereotype.Repository;
@Repository("alphaHibernate")
public class AlphaDaoHibernateImpl implements AlphaDao{
@Override
public String select() {
return "Hibernate";
}
}
AlphaDaoMyBatisImpl
package com.nowcoderbylia.community.dao;
import org.springframework.context.annotation.Primary;
import org.springframework.stereotype.Repository;
@Repository
@Primary
public class AlphaDaoMyBatisImpl implements AlphaDao{
@Override
public String select() {
return "MyBatis";
}
}
service
AlphaService
package com.nowcoderbylia.community.service;
import com.nowcoderbylia.community.dao.AlphaDao;
import jakarta.annotation.PostConstruct;
import jakarta.annotation.PreDestroy;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Service
public class AlphaService {
@Autowired
private AlphaDao alphaDao;
public AlphaService(){
System.out.println("Instantiate AlphaService");
}
@PostConstruct
public void init() {
System.out.println("Initialize AlphaService");
}
@PreDestroy
public void destroy() {
System.out.println("Destroy AlphaService");
}
public String find() {
return alphaDao.select();
}
}
CommunityApplication
package com.nowcoderbylia.community;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class CommunityApplication {
public static void main(String[] args) {
SpringApplication.run(CommunityApplication.class, args);
}
}
resources
test
java
com.nowcoderbylia.community
CommunityApplicationTests
package com.nowcoderbylia.community;
import com.nowcoderbylia.community.dao.AlphaDao;
import com.nowcoderbylia.community.service.AlphaService;
import org.junit.jupiter.api.Test;
import org.springframework.beans.BeansException;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
import org.springframework.test.context.ContextConfiguration;
import java.security.PrivateKey;
import java.text.SimpleDateFormat;
import java.util.Date;
@SpringBootTest
@ContextConfiguration(classes = CommunityApplication.class)
class CommunityApplicationTests implements ApplicationContextAware {
private ApplicationContext applicationContext;
@Override
public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
this.applicationContext = applicationContext;
}
@Test
public void testApplicationContext() {
System.out.println(applicationContext);
AlphaDao alphaDao = applicationContext.getBean(AlphaDao.class);
System.out.println(alphaDao.select());
alphaDao = applicationContext.getBean("alphaHibernate", AlphaDao.class);
System.out.println(alphaDao.select());
}
@Test
public void testBeanManagement() {
AlphaService alphaService = applicationContext.getBean(AlphaService.class);
System.out.println(alphaService);
}
@Test
public void testBeanConfig() {
SimpleDateFormat simpleDateFormat = applicationContext.getBean(SimpleDateFormat.class);
System.out.println(simpleDateFormat.format(new Date()));
}
@Autowired
@Qualifier("alphaHibernate")
private AlphaDao alphaDao;
@Autowired
private AlphaService alphaService;
@Autowired
private SimpleDateFormat simpleDateFormat;
@Test
public void testDI() {
System.out.println(alphaDao);
System.out.println(alphaService);
System.out.println(simpleDateFormat);
}
}
target
classes
generated-sources
generated-test-sources
test-classes
com
nowcodebylia
Community
CommunityApplicationTests (class)
package com.nowcoderbylia.community;
import com.nowcoderbylia.community.dao.AlphaDao;
import com.nowcoderbylia.community.service.AlphaService;
import java.text.SimpleDateFormat;
import java.util.Date;
import org.junit.jupiter.api.Test;
import org.springframework.beans.BeansException;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
import org.springframework.test.context.ContextConfiguration;
@SpringBootTest
@ContextConfiguration(
classes = {CommunityApplication.class}
)
class CommunityApplicationTests implements ApplicationContextAware {
private ApplicationContext applicationContext;
@Autowired
@Qualifier("alphaHibernate")
private AlphaDao alphaDao;
@Autowired
private AlphaService alphaService;
@Autowired
private SimpleDateFormat simpleDateFormat;
CommunityApplicationTests() {
}
public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
this.applicationContext = applicationContext;
}
@Test
public void testApplicationContext() {
System.out.println(this.applicationContext);
AlphaDao alphaDao = (AlphaDao)this.applicationContext.getBean(AlphaDao.class);
System.out.println(alphaDao.select());
alphaDao = (AlphaDao)this.applicationContext.getBean("alphaHibernate", AlphaDao.class);
System.out.println(alphaDao.select());
}
@Test
public void testBeanManagement() {
AlphaService alphaService = (AlphaService)this.applicationContext.getBean(AlphaService.class);
System.out.println(alphaService);
}
@Test
public void testBeanConfig() {
SimpleDateFormat simpleDateFormat = (SimpleDateFormat)this.applicationContext.getBean(SimpleDateFormat.class);
System.out.println(simpleDateFormat.format(new Date()));
}
@Test
public void testDI() {
System.out.println(this.alphaDao);
System.out.println(this.alphaService);
System.out.println(this.simpleDateFormat);
}
}
pom.xml