SpringBoot学习笔记

来源:互联网 发布:膨胀腐蚀算法原理 编辑:程序博客网 时间:2024/06/07 19:10
spring boot 启动方式:
1 直接在程序application类中执行run 2.cd进入项目文件夹 执行 mvn spring-boot:run3.cd进入项目文件夹 执行 mvn install (先对项目进行编译), cd进入target文件夹会看到刚才生成的一个 xxx-0.0.1-SNAPSHOT.jar包, java -jar xxx-0.0.1-SNAPSHOT.jar
1)创建一个application-dev.yml配置文件,配置port和girl的信息;2)创建一个application-prod.yml配置文件,配置port和girl的信息;3)在src/main/com.imooc目录下,创建GirlProperties类文件,添加yml配置文件中的属性,以及set和get方法;4)为了可以实现将配置文件中的内容注入到GirlProperties中,在此类前面加入两个注解:@Component和@ConfigurationProperties;5)在HelloController类中,引入GirlProperties属性,其前加入@Autowired注解;6)在application.yml文件中,加入spring:profiles:active:dev或者prod(代表了选择那个配置文件启动);还有多环境使用配置文件即可以在idea中通过将application.yml文件中的active内容,来选择使用的配置文件,也可以通过在命令行中,通过命令:1)mvn install 2)java -jar target/girl-0.0.1-SNAPSHOT.jar - -spring.profiles.active=dev或者prod来使用配置文件
@RestController=@Controller+@ResponseBody
requestmapping 支持多个URL访问,value={"hello","hi"}
url:localhost:8080/som?id="111"传统url获取参数方式使用@requestParam("参数名称") 映射变量名  例:public string say(@requestParam("id") String id  (id名字可以不一样)
或者@requestParam(value="id"(映射传的参数),required=false(设置参数是否必传),defalutValue="0"(不传的时候默认为0))String id)
获取url中的参数

jpa的配置jpa.hibernate.ddl-auto:creat、update、none、creat-drop、validatecreat每次运行时,都会创建新表(若有,删除原有的,在建新的),update不会删除原有的,保留改变的,更新,create-drop不运行时,删表,none什么也不作,validate验证类里面属性是否与表结构一致,不一致报错;

事务操作:方法前加入@Transactional
表单参数验证:在控制层方法中给对应需要校验的参数添加注解@Valid。然后在被标注校验的实体类中需要校验的属性钟添加相应的校验比如校验最小数字@Min(value="10",message="没有通过校验返回的信息")。最后在控制层对应的方法中添加@Valid,通过BindingResult来接受校验返回的结果信息。
面相对象是垂直切割,把各个对象分割开来。面相切面是水平分割,把影响到多个类的动作封装到一起。
Aspect,建立aspect的class,添加注解@Aspect和@Component// 方法执行之前会先执行@Before,与之对应的有@After@Before("execution(public * 包名.类.方法(..))")  // ..表示任何参数都会被拦截
AOP思想,把通用的服务从业务中分离出来,AOP是一种编程范式,与语言无关,是一种程序设计思想
减少重复代码:

返回结果的处理:
发现重复代码,当即优化。以后 = 永不
只有runtimeexception,spring才会事务回滚。对于是exception而不是runtimeexception,spring不会回滚事务
统一异常处理。现在的前端和后端都是分离的,返回的大多数都是json格式的。如果发生异常最好也转化为json格式发送给前端。所以我们必须对抛出去的异常进行统一的格式处理。第一步:@controlleradvice第二步:在方法前面加注解
service和controller都直接throws Exception。然后用此类统一处理!


处理异常的 Code 和 Message 用 Enum枚举 统一管理起来!
异常处理类添加日志:
单元测试:
controller层测试@RunWith(SpringRunner.class)@SpringBootTest@AutoConfigureMockMvc@Autowired private MockMvc mvcmvc.perform(MockMvcRequestBuilders.get("/hello")).addExcept(MockMvcResultMatchers.status().isOk())
mvn clean package -Dmaven.test.skip=true可以在打包的时候跳过测试代码