Spring学习笔记,记录一下学习中遇到的问题和解决办法
目录
目录
一、遇到的问题
1.使用IntelliJ IDEA 初始化新项目时,没有Spring Initializr的选项
2.新建项目时start.spring.io无法连接
3.项目配置完成后无法构建,连接超时、构建无法进行
4.依赖缺失
5.使用Thymeleaf等插件无法识别
二、一些笔记
1.关于@Controller和@RestController的不同点
2.测试控制器注解
总结
一、遇到的问题
1.使用IntelliJ IDEA 初始化新项目时,没有Spring Initializr的选项
解决办法:原因可能是IDEA的版本问题,我这里使用的是社区版而不是专业版,试过网上使用Ctrl+Shift+Alt查找javaee的注册表项,但是并没有。
在设置-插件中搜索 Spring Boot , 找到 Spring Boot Assistant 安装并应用即可。
新建项目时注意使用 JDK1.8 以上的版本。
2.新建项目时start.spring.io无法连接
这里尝试了很多次,可能多试几次就好了,如果还不行可以用阿里云代理 https://start.aliyun.com/或直接关闭Windows防火墙。
3.项目配置完成后无法构建,连接超时、构建无法进行
原因是网络问题+JDK版本不对
修改设置-编译器-Java编译器内的目标字节码版本,将其与 项目结构中的语言级别、SDK和模块的语言级别保持一致,同时注意修改 pom.xml 中的 java.version 和 maven.compiler.source/target 的版本。
4.依赖缺失
下载maven到本地,建立文件夹,修改IDEA的Maven设置,若没有repository文件夹需要在相应位置新建一个;修改settings.xml,建议加入国内的镜像mirror。
设置后,点击右侧Maven的重启(第一个按钮),等待下载完成
5.使用Thymeleaf等插件无法识别
IDEA的社区版不提供Thymeleaf插件,要换成专业版或不使用它。
二、一些笔记
1.关于@Controller和@RestController的不同点
二者都是可以用来接收http请求的注解
@Controller本身代表着经过组件扫描为一个组件,标记为组件控制器,返回模板页面;
@RestController相当于@Controller、@ResponseBody,返回实体对象;
代码如下(示例):
@Controller
public class HomeController {
//
}
@RestController
public class HomeController {
//
}
2.测试控制器注解
@WebMvcTest(HomeController.class) 和 @AutoConfigureMockMvc + @SpringBootTest 都可以达到测试工作的目的,
前者会扫描控制器和MVC,若控制器对某些bean有一定的依赖性,在加载配置前测试不会进行。后者是测试注释,自动识别。
@WebMvcTest(NewController.class)
public class DemoApplicationTest {
@Autowired
private MockMvc mockMvc;
@Test
public void testPages() throws Exception{
mockMvc.perform(get("/")).andExpectAll(status().isOk());
}
}
@AutoConfigureMockMvc
@SpringBootTest
public class DemoApplicationTest {
@Autowired
private MockMvc mockMvc;
@Test
public void testPages() throws Exception{
mockMvc.perform(get("/")).andExpectAll(status().isOk());
}
}
总结
还在Spring初学阶段。。。



