SpringBoot使用-03

一:结构

com.mr
- web/controller(负责页面访问控制)
- service(负责业务逻辑)
- domain(负责实体与数据访问)
- comm/common(建议放置公共的类,如全局的配置文件、工具类等。)
注:官方建议,所有包结构应与Application类同级,否则会扫描不到其他包,需要在Application类上添加@ComponentScan(“包”)注解
mian/resources
static(目录存放 Web 访问的静态资源,如 JS、CSS、图片等。)
templates(目录存放页面模板。)
application.properties(项目的配置信息)
banner.txt(可选,里面的内容可以替换项目启动时springboot的图画,http://patorjk.com/software/taag)

二:pom.xml中依赖的jar

//支持web模块
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-web</artifactId>
		</dependency>
	//项目核心模块,包括自动配置支持,日志和YAML
	<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>2.1.1.RELEASE</version>
		<relativePath/> <!-- lookup parent from repository -->
	</parent>
	//springboot 启动项目插件
	<build>
		<plugins>
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
			</plugin>
		</plugins>
	</build>

三:启动方式:

1. spring-boot 中内嵌的tomcat

在这里插入图片描述

2. pom.xml 中依赖的插件

在这里插入图片描述

四:application.properties 配置 (第一种)

  1. 修改访问项目的端口(tomcat端口号)
    server.port=8082 (端口号)
  2. 修改访问项目的路径
    server.servlet.context-path=/xf(自定义项目名)
  3. 修改编码
    server.tomcat.uri-encoding=UTF-8(编码格式)
  4. session 失效时间
    server.servlet.session.timeout=30(时间)
  5. 自定义配置

在这里插入图片描述
@Value对应application.properties配置文件里的自定义配置
在这里插入图片描述
输出结果
在这里插入图片描述

五:数据验证

在这里插入图片描述

    @NotEmpty(message = "用户名不能为空")
    private String name;

    @Length(max = 16,min = 6,message = "密码长度在6-16位")
    private String psw;

    @Min(value = 17,message = "年龄过小")
    @Max(value = 30,message = "年龄过大")
    private Integer age;
//@Valid代表的是要验证的是User这个实体类
    @RequestMapping("save")
    public String save(@Valid User user, BindingResult result){
        System.out.println(user);
        if(result.hasErrors()){//验证有错误
            List<ObjectError> errors = result.getAllErrors();  //获取一个错误的集合
            for (ObjectError error : errors) { 
               // 循环错误信息 并打印在控制台  (foreach循环在idea中快捷键 iter)
                System.out.println(error.getDefaultMessage());
            }
        }
        return "ok";
    }

前台页面访问路径:
在这里插入图片描述
后台控制台输出结果:
将不符合结果的信息输出
在这里插入图片描述

六:springboot junit4 单选测试(ApplicationTests)

/**
 * SpringBoot1.4版本之前用的是SpringJUnit4ClassRunner.class
 */
@RunWith(SpringRunner.class)
/**
 * SpringBoot1.4版本之前用的是@SpringApplicationConfiguration(classes = Application.class)
 */
@SpringBootTest
@WebAppConfiguration//测试环境使用,用来表示测试环境使用的ApplicationContext将是WebApplicationContext类型的
public class ApplicationTests {

	@Test
	public void contextLoads() {
	}

	private MockMvc mvc = null;
	@Before
	public void before(){
		mvc = MockMvcBuilders.standaloneSetup(new TestController()).build();
	}
	@Test
	public void test() throws Exception {
		/**
		 * 1、mockMvc.perform执行一个请求。
		 * 2、MockMvcRequestBuilders.get("XXX")构造一个请求。
		 * 3、ResultActions.param添加请求传值
		 * 4、ResultActions.accept(MediaType.TEXT_HTML_VALUE))设置返回类型
		 * 5、ResultActions.andExpect添加执行完成后的断言。
		 * 6、ResultActions.andDo添加一个结果处理器,表示要对结果做点什么事情
		 *   比如此处使用MockMvcResultHandlers.print()输出整个响应结果信息。
		 * 5、ResultActions.andReturn表示执行完成后返回相应的结果。
		 */
		mvc.perform(MockMvcRequestBuilders.get("/save?name=xbb&age=11&psw=123").accept(MediaType.APPLICATION_JSON))
				.andExpect(MockMvcResultMatchers.status().isOk())
				.andDo(MockMvcResultHandlers.print())
				.andReturn();
	}
}

输出结果
在这里插入图片描述

配置文件的另一种写法

在SpringBoot中还有另一种替代application.properties的配置文件application.yml
这两种配置文件的主要区别是写法不同,如下图:
application.properties
在这里插入图片描述
application.yml
在这里插入图片描述
SpringBoot官方推荐使用application.yml配置文件,yml文件的好处,天然的树状结构,层次感强,一目了然,而且少写了代码。使用的时候需要注意一些细节的地方:
原有的key,例如spring.datasource.username,按“.”分割,都变成树状的配置,key后面的冒号,后面一定要跟一个空格。

猜你喜欢

转载自blog.csdn.net/weixin_44102521/article/details/89259928
今日推荐