作者:20乐宝儿_202 | 来源:互联网 | 2023-09-13 17:38
Eclipse sts插件
Maven2以上
Idea model –spring initalizr
或maven创建 可以指定父模块
@springbootapplication 自动配置
父级依赖 starter-parent
覆盖依赖版本
>
Properties/yml key/value :空格 spring.profiles.active 多配置
自定义读取配置文件 @value(“${boot.name}”)private string name; 编码:file encodings
类读取配置文件 @component @configurationproperties(profix=”boot”)class configinfo{ private string name;private string location;getset} @autowired这个类使用
Springmvc
@controller json@restcontroller @getmapping @postmapping @putmapping @deletemapping
@requestmapping(value=””,method=get/post)
Jsp:引入tomcat.embed/.jasper servlet.jsp-api servlet.jstl 前端视图spring.mvc.view.prefix和suffix为/ .jsp 新建文件夹webapp放入jsp idea404错误 pom中加3个
Mybatis
Mabatis-starter mysql-connector mapper.xml位置 mapper-locations datasource generatormapper.xml生成mapper 插件mybatis.generator-maven-plugin plugins然后build 类上加@mapper 或扫描包 main加mapperscan 把xml 编译 include进去
事物
支持事物 @enabletransactionmanagement service上加@transaction
Restful风格 用/分割 @pathvariable(“id”) “boot/user/{id}”
热部署 spring-boot-devtools build一下
Redis
Starter-data-redis 配置redis端口 注入redistemplate @autowire private redistemplate redistemplate; opsforvalue.get redis desktop manager bean需要实现序列化接口 implements serializable 设置序列化器可读 字符串序列化 stringredisserializer() redistemplate.setkeyserializer(..) 缓存穿透 双重判空synchronized(this) concurrent.excutors.newfixedtreadpool .submit(runable(select))
Redis哨兵 spring.redis.sentinel.master=mymaster sentinel.nodes=多个哨兵端口26380
Dubbo
Dubbo-starter
Dubbo-interface jar –à dubbo-provider
Spring.dubbo.appname= zookeeper地址 spring.dubbo.registry:zookeeper://192.168.106.128地址 zookeeper依赖 101tec zkclient
Provider实现userservice dubbo的@service(version=”1.0”,timeout=1000)注解变成@component springbean main下开启配置支持 @enabledubboconfuration
Dubbo-consumer
Spring.dubbo.appname= zookeeper地址 spring.dubbo.registry:zookeeper://192.168.106.128:2181
@reference 引用服务main下开启配置支持 @enabledubboconfuration
拦截器interceptor
Logininterceptor 实现接口 handlerintercepter 方法 prehandle posthandle aftercompletion
@configuration编写拦截器配置类 继承 webmvcconfigureradapter 实现 addinterceptors 添加拦截器
Registry.addinterceptor(new logininterceptor).addpathpatterns().excludepathpatterns
String[] Addpathpatterns = {“/boot/*”}
Servlet注解方式
Myservlet继承httpservlet 注解@webservlet(urlpatterns=”/my”) dogetpost main方法加@servletcomponentscan扫描这个到这个类
Servlet普通配置
写一个servlet类和写一个配置类 @configuration 注入这个类 @bean servletregistrationbean heservletregstrationbean{regitrationbean(servlet,urlparttern)一下}
Filter过滤器
注解模式 webfilter(urlpattern=”/*”) myfilter 实现 filter接口 dofilter方法过滤 main方法加注解扫描到这个servlet和过滤器 @servletcomponentscan(com.)
Filter普通配置
写一个普通filter类和一个配置类 @configuration 注入这个类@bean filterregistrationbean hefilterregistration { register一下 addpattern(/*)}
字符编码
传统 配置类 @bean 加filter add characterencodingfilter setforceencoding(true)
核心配置中 spring.http.encoding.enabled=false
配置模式 核心中 spring.http.encoding.charset=utf8 等
非web项目
方式一:不选web main中加载configurableapplicationcontext context.getbean(service)
方式二:main实现这个接口 commandlinerunner 的 run方法入口 @autowire注入service
关掉logo setbannermode
War部署
Main 继承springbootservletinitializer 覆盖springapplicationbuilder configure方法 builder.source
maven更改成war
jar部署
内嵌tomcat 插件 spring-boot-maven-plugin1.4.2 resouces包含xml
Thymeleaf(freemaker velocity beetl)
依赖Starter-thymleaf 核心配置 spring.thymleaf.cache=false mode=LEGACYHTML5
Resources下templates写html模版
Th标签注入html th:text=”${}” 静态资源放在resource/static下
有源码