SpringBoot的杂货
-
Ctrl + J 生成代码模板
-
boolean flag = true
使用flag.if flag.else 可自动生成代码
-
fori 自动生成
-
flag.while 自动生成
-
new String().var 自动生成 其他类型同理
-
“Hello world”.sout 自动生成打印
-
.try 自动生成try catch
-
List<Integer> list = Arrays.asList(1, 2, 3, 4, 5, 6); list.for list.fori list.forr 生成for循环
-
map.entrySet().iterator().var 拿到迭代器
-
iterator.hasNext().while 生成循环
-
选中后 + ctrl + alt + t 生成try catch等
-
隐藏侧边栏 alt + 1 隐藏debug/run底边栏 alt + 4
-
两次shift 查找
-
构建、运行java项目 参考链接
-
构建运行springBoot项目 参考链接
-
Tomcat服务器上部署jar,或执行java -jar的区别 参考链接
简单讲,SpringBoot打包出来的jar包中已经包含嵌入式tomcat服务器的依赖项;
1 | <dependency> |
当其部署到外部tomcat服务器时,需屏蔽掉内部内嵌的tomcat
1 | <dependency> |
-
安装tomcat 参考链接
D:\apache-tomcat-10.0.11 127.0.0.1:8080
-
idea的project下可有多个module;module下还可以嵌套module
-
SSM: spring + springmvc + mybatis
-
SpringBoot微框架 = spring(工厂)用来管理项目对象,创建项目对象 + springmvc(控制器) controller
-
spring工厂:创建对象
2种形式:
1、基于配置文件形式创建对象
spring.xml
<bean id=“” class=“xxx.xxServiceImpl” />
2、基于注解方式创建对象
@Component 作用:在工厂中创建对象 通用对象创建注解
@Controller 创建控制器注解
@Service 创建业务层注解
@Repository 创建dao层注解 mybatis
-
springBoot创建对象:
a.使用原始spring框架中注解创建对象 对象名称默认为类名首字母小写
@Component
@Controller
@Service
@Repository
b.使用配置方式创建对象
@Configuration:修饰范围:用在类上 =====> spring.xml
作用:代表这个类是一个springBoot配置类
@Bean注解:作用:创建对象 相当于spring.xml书写bean
-
注入对象时使用@Autowried,默认通过类型注入,跟对象名无关。若想通过对象名注入,需额外加@Qualifier(value = “demoServiceImpl”)
1 |
|
-
<optional>true</optional>
-
<scope>test</scope> 生效范围,仅测试时可用
-
resources目录下建包,层级结构用"/“,不要用”."
-
@MapperScan(“com.zk.com”) //修饰范围:用在类上 作用:用来扫描dao接口所在的包,同时将所有dao接口在工厂中创建对象
-
@Mapper //修饰范围:只能放在dao接口上 作用:用来在工厂中创建dao对象
-
SpringBoot完成本地测试
1、引入依赖
1 | <dependency> |
2、启动SpringBoot应用,才能spring工厂启动,注入测试对象
@SpringBootTest 修饰范围:用在类上 作用:在这个类实例化过程中启动springBoot应用
-
maven下的clean 清空已编译好的.class文件(target文件)
-
配置热部署
引入依赖
1 | <dependency> |
setting compiler 勾选Build project automatically
ctrl + shift + alt + / 在registry中,勾选 compiler.automake.allow.when.app.running
此时运行项目,main会变为restartedMain 成功开启热部署
-
AOP 切面编程 底层是对动态代理的封装
springBoot仅提供注解方式的切面编程
Aspect(切面) = Advice(通知) + 切入点
步骤:
1、引入依赖
1 | <dependency> |
2、在springBoot项目中新建config(配置)包
@Configuration 修饰范围:只能用在类上 作用:代表这是一个spring的配置类 spring.xml
@Aspect 修饰范围:只能用在类上 作用:代表这个类是一个切面类 <aop:config>
//@Before 代表这个方法是一个前置附加操作
//@After 代表这个方法是一个后置附加操作
//@Around 代表这个方法是一个环绕附加操作
value属性:用来书写切入点表达式
@Before(“execution(* com.zk.service.*.*(…))”) 注意符号!!
对于@Before和@After,方法内可使用参数JoinPoint,来获取连接点等相关信息 可加可不加
1 | public void before(JoinPoint joinPoint) { |
对于@Around,参数为ProceedingJoinPoint
1 | /* |
-
拦截器interceptor 底层原理为AOP
相对于拦截器,另一种filter过滤器:可拦截javaweb中请求,放行或中断。可拦截任何资源。
-
拦截器的定义:类似filter,但只能拦截controller相关请求
-
作用:将controller中共有代码放入到拦截器中执行,减少controller中代码冗余
-
拦截器的开发:
-
类 implements HandlerInterceptor
preHandler 预先处理方法: 最先执行方法 返回布尔类型 true放行 false中断
执行controller中的内容
postHandler 过程中处理: controller返回之后回到postHandler方法执行,执行完成这个方法开始响应浏览器
afterCompletion 最后完成: 当响应结束之后,执行拦截器的该方法
-
配置拦截器
springMvc配置方式:mvc:interceptors springmvc.xml
springBoot 提供了springmvc配置类:
类 implements WebMvcConfigurer {
//覆盖配置拦截器方法
1、使用哪个拦截器 2、拦截器拦截请求 3、排除哪些请求
}
-
-
-
RestFul风格(搞个机会把之前的项目请求改成RestFul风格)
1 | /* |