最新要闻
- 龙爸无双100集电视剧免费观看|环球热点评
- 装饰材料包括什么东西(装饰材料都包括什么) 环球即时看
- 微软Edge离奇改动:新版不再支持删除云端同步数据
- 《变形金刚》《蜘蛛侠》不分伯仲:2023暑期档票房破10亿_世界播资讯
- 乳晕变大是怎么回事(乳晕大怎么回事)-天天热点
- 证监会就公开募集证券投资基金投资顾问业务管理规定公开征求意见_每日简讯
- 陕西西安推动“十里沣河”文旅深度融合古老沣河涌动新活力 焦点资讯
- 低价团乱象再起 何以无解?|头条焦点
- 四川省社科院周友苏:适合且能推动上市公司高质量发展的规章制度才是“良法善治”|世界短讯
- 瑞虎8保养灯怎么消除(本田冠道保养灯怎么消除?) 环球速递
- 王永调研阿洛亚与蜜泉湖联通工程时强调:树立“大景区、大旅游”理念 努力打造全域旅游胜地|每日速递
- 天天要闻:日本人拆了辆比亚迪海豹 还出了本书 定价6.7万
- 你买过“游戏盘”么?分析师:无实体游戏将在2028年成主流|资讯
- 居理买房暴雷!前员工称“欠薪千万元,丈母娘顶替法人” 全球观焦点
- ps保存不了jpg格式怎么办(ps保存不)
- 惩治网暴,公检法三部门公开征求意见!维权难度能降低吗?
手机
iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
- 警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- 男子被关545天申国赔:获赔18万多 驳回精神抚慰金
- 3天内26名本土感染者,辽宁确诊人数已超安徽
- 广西柳州一男子因纠纷杀害三人后自首
- 洱海坠机4名机组人员被批准为烈士 数千干部群众悼念
家电
【技术积累】SpringBoot中的简介与配置【一】
什么是Spring Boot?
Spring Boot是在Spring Framework基础之上建立的,用于轻松创建基于Spring的独立、生产级别的应用和服务的开源框架。它通过自动配置、约定大于配置的方式,简化了Spring应用程序的开发、部署和运行。Spring Boot可以帮助开发者快速搭建基于Spring的应用,从而减少开发时间。
Spring Boot具有以下优势:
自动配置:Spring Boot基于约定大于配置的原则,自动配置应用程序的需要,开发者只需要在必要时手动配置。
(资料图片)
插件化:Spring Boot支持插件化,它提供了许多starter,开发者只需根据需求引入不同的starter即可。
简化开发、部署和运行:Spring Boot提供了快速开发、集成测试、部署工具等等,从而简化整个应用程序的开发、部署和运行过程。
适用于微服务架构:Spring Boot为微服务架构而生,它提供了一系列的特性,如服务发现、负载均衡、断路器等等,使得微服务的开发和部署更加简单。
总之,Spring Boot是一个快速创建Spring应用程序的框架,它使得开发者能够更快、更轻松地开发、部署和运行基于Spring的应用程序。
Spring Boot的历史和发展
Spring Boot是Spring Framework的一个子项目,旨在简化Spring应用开发的过程。
Spring Boot的历史在2012年,SpringSource公司(现为Pivotal)发布了第一个Spring Boot版本。之后,Spring Boot的发展一直都非常稳定,并且有大量的社区贡献者和用户。随着时间的推移,Spring Boot不断增加了新的功能和特性。如今,它已成为使用最广泛的Java微服务开发框架之一。
Spring Boot的发展
Spring Boot的开发目标是简化Spring应用开发的过程,这是通过一个开箱即用的配置和假设一系列的约定来实现的。开发人员可以利用自动配置来将应用快速部署并进行测试。
在Spring Boot 2.0版本中,Spring Boot引入了一些重要的新特性,如响应式编程API、函数式Web框架、Kotlin支持等。此外,Spring Boot 2.1版本还引入了对Java 11的全面支持。
除了Spring Boot自身的发展之外,Spring Boot生态系统的发展也非常迅速。现在,有越来越多的Spring Boot插件、工具和框架可以用于开发和部署Spring Boot应用。
总之,Spring Boot是一个不断发展的框架,它的变化、发展和提高使得开发更快捷和更方便,同时也能够满足更加严格的业务要求和更复杂的应用场景。
Spring Boot与Spring有什么关系
Spring Boot是建立在Spring框架之上的,它可以看作是Spring的升级版。Spring Boot采用了约定大于配置的设计思想,通过自动配置和快速启动,让Spring应用程序的开发更加简单、快速和高效。
虽然Spring Boot和Spring Framework是不同的项目,但Spring Boot是由Spring Framework开发团队开发的,它们之间有很多联系。Spring Boot可以使用Spring的所有框架和工具,如Spring MVC、Spring Data等,同时它也在不断地更新和完善这些框架和工具。
Spring Boot让Spring应用程序更加提高了生产力和可扩展性。它提供了许多特性,例如自动配置和依赖注入等等,在保证应用程序质量和性能的同时,让开发者更加专注于业务实现。
因此,Spring Boot是Spring Framework的一种框架,它为Spring应用程序开发提供了更加高效的工具和机制,让开发过程更加容易、快速和高效。
如何用IDEA创建一个Spring Boot应用程序?需要哪些依赖?
使用IntelliJ IDEA创建一个Spring Boot应用程序的步骤如下:
- 打开 IntelliJ IDEA,选择“Create New Project”菜单。
- 在弹出的对话框中,选择“Spring Initializr”选项,类型选择Maven,并点击“Next”按钮。
- 在下一步中,选择所需的依赖和Spring Boot版本,例如Web、JPA、MySQL等。
- 点击“Next”按钮后,输入项目的名称、选择项目的存储位置和Java SDK版本,并点击“Finish”按钮。IntelliJ IDEA会自动创建一个Spring Boot项目。
在选择“Spring Initializr”选项时,需要选择“Maven”或“Gradle”构建工具类型。
这取决于你想使用哪种构建工具来管理你的项目。
如果你选择使用Maven,那么在下一步中将会看到Maven项目设置选项。同样的,如果你选择使用Gradle,那么在下一步中将会看到Gradle项目设置选项。
在选择构建工具类型后,点击“Next”按钮即可继续创建Spring Boot应用程序。
创建完Spring Boot项目后,需要添加一些必要的依赖。以下是一些常用的依赖:
- spring-boot-starter-web:Spring Boot中提供的Web相关依赖,包含Tomcat和Spring MVC。
- spring-boot-starter-data-jpa:Spring Boot中提供的JPA相关依赖,使得我们可以方便地使用Hibernate等ORM框架。
- spring-boot-starter-security:Spring Boot中提供的安全相关依赖,可以快速集成Spring Security功能。
- spring-boot-starter-test:Spring Boot中提供的测试相关依赖,包括JUnit、Mockito等。
要添加这些依赖,可以直接在pom.xml文件中添加。例如,要添加spring-boot-starter-web和spring-boot-starter-data-jpa依赖,可以在pom.xml文件中加入以下内容:
org.springframework.boot spring-boot-starter-web org.springframework.boot spring-boot-starter-data-jpa
完成这些步骤后,可以开始编写Spring Boot应用程序了。
如何配置Spring Boot应用程序的属性
好的,以下是如何配置Spring Boot应用程序的属性的详细步骤:
1. 打开您的Spring Boot应用程序项目。
2. 找到application.properties或application.yml文件,它们通常位于src/main/resources目录下。如果这些文件不存在,您可以手动创建它们。
3. 在这些文件中,您可以设置应用程序的属性,例如端口号、日志级别等。例如,如果您想将应用程序的端口号设置为8080,可以在application.properties文件中添加以下行:
server.port=8080
4. 如果您使用的是application.yml文件,则可以添加以下行:
server: port: 8080
5. 您还可以在这些文件中设置其他属性。例如,如果您想设置日志级别为DEBUG,则可以在application.properties文件中添加以下行:
logging.level.root=DEBUG
6. 完成后,保存文件并重新启动您的应用程序。现在,您的应用程序将使用您刚刚设置的属性。
Spring Boot应用程序的常见属性还有哪些
- server.port:设置应用程序的端口号
- logging.level:设置应用程序的日志级别
- spring.datasource.url/spring.datasource.username/spring.datasource.password:设置数据库连接信息
- spring.profiles.active:设置激活的Spring配置文件
- spring.jpa.hibernate.ddl-auto:设置Hibernate在启动时自动创建数据表的模式
- spring.mvc.view.prefix/spring.mvc.view.suffix:设置视图解析器的前缀和后缀
- spring.mail.*:设置邮件发送相关的配置信息
- spring.security.*:设置Spring Security的配置信息
- management.endpoints.web.exposure.include:设置可以访问的Actuator端点
- spring.cloud.config.*:设置Spring Cloud Config的配置信息
如何配置Spring Boot应用的日志级别?
在Spring Boot应用中,日志框架默认采用的是Logback,可以通过配置文件或代码的方式来配置日志级别。下面分别介绍两种方式:1. 配置文件方式在Spring Boot应用中,可以在application.properties或application.yml文件中配置日志级别,如下:application.properties:logging.level.com.example=INFO
application.yml:logging: level: com.example: INFO
上述配置将com.example包下的日志级别设置为INFO级别。2. 代码方式可以通过在application类中使用@Loggin注解来设置日志级别,如下:@SpringBootApplication@Slf4jpublic class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); } @Bean public CommandLineRunner commandLineRunner(ApplicationContext ctx) { return args -> { log.debug("Debug message"); log.info("Info message"); log.warn("Warn message"); log.error("Error message"); }; }}
在上述代码中,使用@Slf4j注解来指定日志级别,然后在commandLineRunner方法中使用各种级别的日志输出,可以在控制台上看到输出结果。除了上述两种方式,还可以使用其他日志框架替换Logback,例如Log4j、JUL等,只需在pom.xml中添加对应的依赖即可。如何配置数据源以及数据库连接信息?
在Spring Boot中,可以使用多个数据源,包括连接关系型数据库(Jdbc)、NoSQL数据库(MongoDB)等等。下面主要介绍如何配置连接关系型数据库的方式。1. 数据源配置在Spring Boot中,可以使用Spring提供的JdbcTemplate或Hibernate/JPA等ORM框架,来访问关系型数据库。在配置数据源时,需要引入对应的驱动和配置相关的属性,如下:application.properties:# DataSource settings: set here your own configurations for the database connection.spring.datasource.url=jdbc:mysql://localhost/test?useUnicode=true&characterEncoding=utf8&autoReconnect=true&failOverReadOnly=false&maxReconnects=10spring.datasource.username=rootspring.datasource.password=rootspring.datasource.driverClassName=com.mysql.cj.jdbc.Driver
在上述配置中,指定了数据库的连接URL、用户名、密码以及驱动类名。2. 数据库连接池配置Spring Boot内部默认采用的是Tomcat连接池。可以根据实际情况,在配置数据源时,设置连接池大小、连接等待时间、最小闲置连接数等参数,如下:application.properties:# Connection pool settings.spring.datasource.hikari.connection-timeout=20000spring.datasource.hikari.maximum-pool-size=5spring.datasource.hikari.minimum-idle=1
在上述配置中,配置了连接超时时间为20秒钟、最大连接数为5、最小的空闲连接数为1。3. 使用多个数据源在实际应用场景中,经常需要使用多个数据源,可以通过配置多个DataSource bean来实现。具体实现方式见下列示例:application.properties:# Primary datasource configurations.spring.primary.datasource.url=jdbc:mysql://localhost/test?useUnicode=true&characterEncoding=utf8&autoReconnect=true&failOverReadOnly=false&maxReconnects=10spring.primary.datasource.username=rootspring.primary.datasource.password=rootspring.primary.datasource.driverClassName=com.mysql.cj.jdbc.Driver# Secondary datasource configurations.spring.secondary.datasource.url=jdbc:mysql://localhost/secondary?useUnicode=true&characterEncoding=utf8&autoReconnect=true&failOverReadOnly=false&maxReconnects=10spring.secondary.datasource.username=rootspring.secondary.datasource.password=rootspring.secondary.datasource.driverClassName=com.mysql.cj.jdbc.Driver
在上述配置中,定义了两个数据源,分别为primary和secondary。在代码中,可以通过@Qualifier注解指定要注入的数据源,如下:@Autowired@Qualifier("primaryDataSource")private DataSource primaryDataSource;@Autowired@Qualifier("secondaryDataSource")private DataSource secondaryDataSource;
其中primaryDataSource和secondaryDataSource是对应的DataSource bean的名称。需要注意的是,如果不需要使用默认的数据源,需要明确的指定一个主数据源。可以通过在应用程序的主类中添加@Primary注解来指定主数据源,如下:@Bean@Primary@ConfigurationProperties(prefix="spring.primary.datasource.hikari")public DataSource primaryDataSource() { return DataSourceBuilder.create().type(HikariDataSource.class).build();}@Bean@ConfigurationProperties(prefix="spring.secondary.datasource.hikari")public DataSource secondaryDataSource() { return DataSourceBuilder.create().type(HikariDataSource.class).build();}
在上述代码中,使用@ConfigurationProperties注解读取配置文件中的属性,并创建对应的DataSource bean。其中使用@Primary注解指定了primaryDataSource作为主数据源。在实际使用中,可以通过primaryDataSource来调用相关的方法,实现操作数据库。拦截器和过滤器是Spring Boot应用中常用的组件,它们用于在请求处理前或处理后进行某些操作,如日志记录、权限校验、数据格式转换等。如何配置Spring Boot应用的拦截器和过滤器?
1. 配置拦截器在Spring Boot应用中使用拦截器需要实现HandlerInterceptor接口,并在配置类中注册拦截器。拦截器可以定义在应用级别或具体控制器级别。示例代码:定义拦截器类:@Componentpublic class CustomInterceptor implements HandlerInterceptor { @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { // 在请求处理前执行的代码 return true; // 返回true表示放行请求,false表示拦截请求 } @Override public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception { // 请求处理后但未渲染视图时执行的代码 } @Override public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception { // 视图渲染后执行的代码 }}
注册拦截器:@Configurationpublic class InterceptorConfig implements WebMvcConfigurer { @Autowired private CustomInterceptor customInterceptor; @Override public void addInterceptors(InterceptorRegistry registry) { // 注册应用级别的拦截器 registry.addInterceptor(customInterceptor) .addPathPatterns("/**"); // 配置拦截路径 } @Override public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) { configurer.enable(); }}
2. 配置过滤器在Spring Boot应用中配置过滤器需要实现Filter接口,并在配置类中注册过滤器。过滤器可以定义在应用级别或具体servlet级别。示例代码:定义过滤器类:@Componentpublic class CustomFilter implements Filter { @Override public void init(FilterConfig filterConfig) throws ServletException { // 过滤器初始化时执行的代码 } @Override public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { // 过滤器拦截请求时执行的代码 chain.doFilter(request, response); // 执行后续的请求处理 // 过滤器处理完请求后执行的代码 } @Override public void destroy() { // 过滤器销毁时执行的代码 }}
注册过滤器:@Configurationpublic class FilterConfig { @Bean public FilterRegistrationBean customFilterRegistration() { FilterRegistrationBean registration = new FilterRegistrationBean<>(); registration.setFilter(new CustomFilter()); registration.addUrlPatterns("/*"); // 配置过滤路径 registration.setName("CustomFilter"); return registration; }}
关键词:
【技术积累】SpringBoot中的简介与配置【一】
龙爸无双100集电视剧免费观看|环球热点评
装饰材料包括什么东西(装饰材料都包括什么) 环球即时看
微软Edge离奇改动:新版不再支持删除云端同步数据
《变形金刚》《蜘蛛侠》不分伯仲:2023暑期档票房破10亿_世界播资讯
乳晕变大是怎么回事(乳晕大怎么回事)-天天热点
证监会就公开募集证券投资基金投资顾问业务管理规定公开征求意见_每日简讯
陕西西安推动“十里沣河”文旅深度融合古老沣河涌动新活力 焦点资讯
低价团乱象再起 何以无解?|头条焦点
四川省社科院周友苏:适合且能推动上市公司高质量发展的规章制度才是“良法善治”|世界短讯
【世界播资讯】【技术积累】Python中的Pandas库【三】
Linux命令篇 - tar 命令
瑞虎8保养灯怎么消除(本田冠道保养灯怎么消除?) 环球速递
王永调研阿洛亚与蜜泉湖联通工程时强调:树立“大景区、大旅游”理念 努力打造全域旅游胜地|每日速递
天天要闻:日本人拆了辆比亚迪海豹 还出了本书 定价6.7万
你买过“游戏盘”么?分析师:无实体游戏将在2028年成主流|资讯
居理买房暴雷!前员工称“欠薪千万元,丈母娘顶替法人” 全球观焦点
ps保存不了jpg格式怎么办(ps保存不)
惩治网暴,公检法三部门公开征求意见!维权难度能降低吗?
湖南博物馆千年古尸_湖南博物馆千年女干尸|焦点关注
焦点速讯:问麻了…阿里一面索命27问,过了就60W+
世界通讯!小迪网安笔记二:信息收集
极目时评丨环卫母亲与高考儿子相拥而泣刷屏,普通人改变命运的努力打动人心
坚守“可靠”坦克Hi4-T 当下新能源越野的更优解 世界播报
当前聚焦:遗体告别仪式流程和掩口流程(遗体告别仪式流程)
国家防总启动防汛四级应急响应,派工作组赴广西福建指导救灾
手机充电很慢是怎么回事呢_手机充电很慢
《猎魔人》S3新预告再惹观众怒火 服装造型太糟糕-当前热闻
我是大运火炬手丨第一棒火炬手邹敬园:我在成都等你们
打新套利动辄千万,“万人摇”乱象丛生,楼市限价将“退出”? 今日热议
西安艺术高级中学网站(西安艺术高级中学)
天津滨海新区可提供伊立浦电压力锅维修服务地址在哪 全球今热点
全球讯息:化疗的时候有什么症状(化疗是什么感觉)
当你变成兔子中文在线玩_当你变成兔子
Maven常用命令及其作用_全球速读
tab是什么意思英语_tab是什么意思-天天报道
今亮点!得不到就毁掉!租客拿到6万补偿后“毁坏式”退房 被判赔偿9万元!
三星最强安卓平板即将发布,Galaxy Tab S9 Ultra 通过 FCC 认证
当前头条:苹果M2 Ultra在Geekbench 5跑分并没有碾压英特尔、AMD,还不如i9-13900K
清淡饮食吃什么小吃(清淡饮食吃什么)|当前快看
祁阳市人民政府官网_祁阳的风景名胜和非遗文化|当前通讯
【全球播资讯】女子拍到50多条锦鲤首尾相连“龙形游” 网友:这就是鱼贯而入吧
中国电信自主品牌!麦芒全新A系列官宣:新机5000万像素主摄确定
焦点信息:占便宜?Xbox"薅羊毛"《暗黑破坏神4》终极版已强制退款
买二手房后发现房屋漏水怎么办(房屋漏水怎么办) 天天报道
好玩好看,上海国际电影节首次推出“数字影视体验展”
环球资讯:首台套50万千瓦冲击式水电机组项目开工
第53届亚太桥牌锦标赛开赛
每日简讯:聊聊Flink的必知必会(一)
天天最新:橄榄可以搭配葡萄酒吗?
全球快讯:安逸四川日历海报丨在广元利州月坝村:踏湖望星空
12306买卧铺票可以在线选铺了!操作指南出炉:很方便
全球快讯:夫妻节目里的反套路_夫妻节
阴阳师樱花妖技能什么意思(阴阳师樱花妖的夫君是谁) 观察
猪饲料品牌名字_猪饲料品牌-环球热议
博纳董事长于冬:剧集的崛起是对电影真正的冲击,不是拼特效的时代了
阔太王艳48岁重新复出,穿花裙跳舞秀曼妙曲线,彻底颠覆豪门形象 天天报道
还能算中国中型SUV标杆?丰田汉兰达月销已不足5000 隔壁理想已破万
当前短讯!CPU性能激增20%!苹果M2 Ultra处理器Geekbench 6跑分出炉
能否继续维持MPV霸主地位?全新丰田埃尔法现身国内 6月21日正式发布
全自动马桶水箱盖怎么打开(马桶水箱盖怎么打开)_今日最新
上海地铁9号线枫泾何时开通(上海地铁9号线)|每日热点
遵守公司规章制度总结怎么写(遵守公司规章制度总结)|世界独家
足字旁那个字怎么写(足字旁怎么打)
新加坡羽毛球公开赛:陈雨菲晋级女单半决赛
天天即时:《一张纸条》阅读答案(一张纸条阅读答案)
if little by little(if little)
老百姓的“柴米油盐”不易拍
魅族史上最美旗舰!魅族20 PRO 618特惠:极简“纽扣”三摄 每日快播
每日速讯:猛男必入 618新潮配色手机推荐:这颜值才对味
每日资讯:珠峰被救女子所雇登山公司深夜发声:救援费已支付 感谢救援
抽中检查就撤IPO的格林生物二闯创业板,拟再度扩充产能 热消息
王永利:人民币国际化应有序推进_世界快播报
环球热点评!Linux下六个有关file使用的实例
我国加大产销对接促脱贫地区帮扶产业高质量发展_当前热讯
我是大运火炬手丨丁宁:大运会既是赛场,更是世界青年的交流展示平台
余承东同款座驾!AITO问界M5智驾版下周交付 焦点热议
女记者体验Vision Pro后压红额头和鼻子 苹果史上最贵新品遇冷:已砍单95%|每日动态
高考生换机高峰来了!卢伟冰:Redmi K60、小米13真卖爆了 天天速读
打造“第三生活空间” 深蓝S7要爆红!
广汽总经理:为电池材料厂打长工不现实 我们车企他们永远得罪不起
古老沣河涌动新活力-环球实时
国内首条“丝路海运”电商快线开通首年进出口破100亿
q点是什么意思(q点)
善学者尽其理善行者究其难什么意思遇事三思而后行(善学者尽其理 善行者究其难什么意思)
高质量发展调研行 | 在智慧港口见证大湾区经济活力——广州南沙港走访一线见闻-全球热资讯
一位付费API工程师如何制造了推特今年第七次崩溃?
歌手李娜的丈夫照片(歌手李娜的丈夫) 天天快资讯
百万跑车变“火车”!杭州一法拉利458突然起火:车身烧出洞
天天滚动:诗词里的遗产:龙虎天下绝 千载玉棺探秘
赞美祖国大好河山的诗句_祖国大好河山的诗句
热点聚焦:宋代诗人陈与义有诗(宋代诗人陈与义乘船出游时)
房子贷款多久可以下来(房子首付付了贷款没下来可以退吗)
平安建设,你我同行—— 海湾旅游区开展2023年“平安建设宣传月”活动
莱商银行网上银行助手_莱商银行网上银行
护航高考|山东平安产险红马甲交上答卷 世界新要闻
全球今日讯!红烧牛腩的家常做法简单又好吃_红烧牛腩的家常做法
48个班!遂宁一公立学校今年9月投用|每日报道
八字偏强八字喜木是什么意思_八字偏强
蛇岛(九蛇岛)-全球快播报