1.springmvc3 å4çåºå«
2.springMVC4.0+mybatis 源码Invalid bound statement (not found)
3.è¯´è¯´ä½ å¯¹springbootçç解(å¦ä½ç解springboot)
4.Spring认证中国教育管理中心-Spring Data Elasticsearch教程一
springmvc3 å4çåºå«
springmvc3 å4çåºå«
4.0主è¦æ¯å¯¹Java 8çæ°å½æ°å¼è¯æ³è¿è¡æ¯æãã
è¿æå 强äºå¯¹ç½ç»åç§æ°ææ¯æ¯å¦-streaming, websocketçæ´å¥½çæ¯æã
å ·ä½å¯ä»¥çåèæå第ä¸ç« ã
%å3.0ä¿æäºåä¸å ¼å®¹æ§ç..
springmvcåservletçåºå«Spring MVCåStruts2çåºå«ï¼
æºå¶ï¼spring mvcçå ¥å£servletï¼èstruts2æ¯filterï¼è¿éè¦æåºï¼filteråservletæ¯ä¸åçã以å认为filteræ¯servletçä¸ç§ç¹æ®ï¼ï¼è¿æ ·å°±å¯¼è´äºäºè çæºå¶ä¸åï¼è¿éå°±çµæ¶å°servletåfilterçåºå«äºã
2.æ§è½ï¼springä¼ç¨å¾®æ¯strutså¿«ãspring mvcæ¯åºäºæ¹æ³ç设计èsturtsæ¯åºäºç±»ï¼æ¯æ¬¡åä¸æ¬¡è¯·æ±é½ä¼å®ä¾ä¸ä¸ªactionï¼æ¯ä¸ªactioné½ä¼è¢«æ³¨å ¥å±æ§ï¼èspringåºäºæ¹æ³ï¼ç²åº¦æ´ç»ï¼ä½è¦å°å¿ææ¡åå¨servletæ§å¶æ°æ®ä¸æ ·ãspring3 mvcæ¯æ¹æ³çº§å«çæ¦æªï¼æ¦æªå°æ¹æ³åæ ¹æ®åæ°ä¸ç注解ï¼ærequestæ°æ®æ³¨å ¥è¿å»ï¼å¨spring3 mvcä¸ï¼ä¸ä¸ªæ¹æ³å¯¹åºä¸ä¸ªrequestä¸ä¸æãèstruts2æ¡æ¶æ¯ç±»çº§å«çæ¦æªï¼æ¯æ¬¡æ¥äºè¯·æ±å°±å建ä¸ä¸ªActionï¼ç¶åè°ç¨setter getteræ¹æ³ærequestä¸çæ°æ®æ³¨å ¥ï¼struts2å®é ä¸æ¯éè¿setter getteræ¹æ³ä¸requestæ交éçï¼struts2ä¸ï¼ä¸ä¸ªAction对象对åºä¸ä¸ªrequestä¸ä¸æã
3.åæ°ä¼ éï¼strutsæ¯å¨æ¥ååæ°çæ¶åï¼å¯ä»¥ç¨å±æ§æ¥æ¥ååæ°ï¼è¿å°±è¯´æåæ°æ¯è®©å¤ä¸ªæ¹æ³å ±äº«çã
4.设计ææ³ä¸ï¼strutsæ´å 符åoopçç¼ç¨ææ³ï¼springå°±æ¯è¾è°¨æ ï¼å¨servletä¸æ©å±ã
5.intercepterçå®ç°æºå¶ï¼strutsæ以èªå·±çinterceptoræºå¶ï¼spring mvcç¨çæ¯ç¬ç«çAOPæ¹å¼ãè¿æ ·å¯¼è´strutsçé ç½®æ件éè¿æ¯æ¯spring mvc大ï¼è½ç¶strutsçé ç½®è½ç»§æ¿ï¼æ以æè§å¾è®ºä½¿ç¨ä¸æ¥è®²ï¼spring mvc使ç¨æ´å ç®æ´ï¼å¼åæçSpring MVCç¡®å®æ¯struts2é«ãspring mvcæ¯æ¹æ³çº§å«çæ¦æªï¼ä¸ä¸ªæ¹æ³å¯¹åºä¸ä¸ªrequestä¸ä¸æï¼èæ¹æ³åæ¶åè·ä¸ä¸ªurl对åºï¼æ以说ä»æ¶ææ¬spring3 mvc就容æå®ç°restful urlãstruts2æ¯ç±»çº§å«çæ¦æªï¼ä¸ä¸ªç±»å¯¹åºä¸ä¸ªrequestä¸ä¸æï¼å®ç°restful urlè¦è´¹å²ï¼å 为struts2 actionçä¸ä¸ªæ¹æ³å¯ä»¥å¯¹åºä¸ä¸ªurlï¼èå ¶ç±»å±æ§å´è¢«æææ¹æ³å ±äº«ï¼è¿ä¹å°±æ æ³ç¨æ³¨è§£æå ¶ä»æ¹å¼æ è¯å ¶æå±æ¹æ³äºãspring3 mvcçæ¹æ³ä¹é´åºæ¬ä¸ç¬ç«çï¼ç¬äº«request responseæ°æ®ï¼è¯·æ±æ°æ®éè¿åæ°è·åï¼å¤çç»æéè¿ModelMap交åç»æ¡æ¶æ¹æ³ä¹é´ä¸å ±äº«åéï¼èstruts2æçå°±æ¯è¾ä¹±ï¼è½ç¶æ¹æ³ä¹é´ä¹æ¯ç¬ç«çï¼ä½å ¶ææActionåéæ¯å ±äº«çï¼è¿ä¸ä¼å½±åç¨åºè¿è¡ï¼å´ç»æ们ç¼ç ï¼è¯»ç¨åºæ¶å¸¦æ¥éº»ç¦ã
6.å¦å¤ï¼spring3 mvcçéªè¯ä¹æ¯ä¸ä¸ªäº®ç¹ï¼æ¯æJSRï¼å¤çajaxç请æ±æ´æ¯æ¹ä¾¿ï¼åªéä¸ä¸ªæ³¨è§£@ResponseBody ï¼ç¶åç´æ¥è¿åååºææ¬å³å¯ãéä¸ä¸æ®µä»£ç ï¼ @RequestMapping(value=â/whitelistsâ) public String index(ModelMap map) { Aount aount = aountManager.getByDigitId(SecurityContextHolder.get().getDigitId()); List groupList = groupManager.findAllGroup(aount.getId()); map.put(âaountâ, aount); map.put(âgroupListâ, groupList); return â/group/group-indexâ; } @ResponseBody ajaxååºï¼å¤çAjax请æ±ä¹å¾æ¹ä¾¿ @RequestMapping(value=â/whitelist/{ whiteListId}/delâ) @ResponseBody public String delete(@PathVariable Integer whiteListId) { whiteListManager.deleteWhiteList(whiteListId)return âsuessâ; }
7. å 为Struts2éè¦é对æ¯ä¸ªrequestè¿è¡å°è£ ï¼æRequestãResponseãSessionçServletå¨æçåéå°è£ æä¸ä¸ªä¸çMapï¼ä¾ç»æ¯ä¸ªAction使ç¨ï¼å¹¶ä¿è¯çº¿ç¨å®å ¨ï¼æ以ä»æ¡æ¶ç»æåºåï¼Struts2ä¹æ¯SpringMVCèå åï¼
8.æ¥æ¶åæ°çå½¢å¼ä¹ä¸ä¸æ ·ï¼Struts2æ¯éè¿Actionä¸çsetæ¹æ³å°±è½å®ç°ï¼èSpringMVCæ¯éè¿æ¾å¼çHttpServletRequestä¸è·åãï¼å 两è å¨è¿éåºå«è¾å¤§ï¼æ以åä½ç¨åºåä¹è§ä»è§æºè®¤ä¸ºStruts2è¿ç§æ¹å¼ä¸å®å ¨ï¼å¯ä»¥éæä¿®æ¹åéå¼ï¼ä¹æç¨åºå认为SpringMVCçæ¹å¼èªç±åº¦ä¸é«ï¼åªè½ä»Requestä¸è·åæ°æ®ï¼è¿å¾æ¯ä¸ªæ¹æ³é½é ç½®Requestï¼ä¸æ¹ä¾¿æµè¯ï¼èä¸å°åæ å°å¿ é¡»æ¯è¦è¢«å ³æ³¨çï¼9.SpringMVCè¿åç»æä¸è½å¶å®ä¸ï¼åªè½æ¯ModelAndViewæè ä¸è¿åï¼æ²¡æå°è§å¾ä¸ç»æ解è¦ï¼èStruts2æ°å¥½ç¸åï¼æ¯ä¸ªResulté½æä¸ä¸ªå¤çå½¢å¼ï¼å°è§å¾ä¸è¿åç»æ解è¦ï¼è¿åç»æèªå®ä¹åï¼
.SpringMVCéè¦é ç½®ä¸é¨çä¸æè¿æ»¤å¨ï¼èStruts2åä¸éè¦
注ï¼ä¸¤è ä¸å¯åæ¥èè¯ï¼SpringMVCæ¯åºäºinterfaceå¼åå å¼å ¥äºIOCãAOPçææ³çè½»é级æ¡æ¶ï¼èStruts2æ¯webçå¾ç»å ¸çMVCæ¡æ¶ï¼å°ç°å¨å·²ç»åå±åå²æ ä¹ äºï¼è½å ·ä½è¯´åºæ¥è°å¥½è°å·®åï¼
strutsåspringmvcçåºå«SpringMVC åStruts2çåºå«
1. æºå¶ï¼
spring mvcçå ¥å£æ¯servletï¼èstruts2æ¯filterï¼è¿æ ·å°±å¯¼è´äºäºè çæºå¶ä¸åã
2. æ§è½ï¼
springä¼ç¨å¾®æ¯strutså¿«ãspring mvcæ¯åºäºæ¹æ³ç设计ï¼èsturtsæ¯åºäºç±»ï¼æ¯æ¬¡åä¸æ¬¡è¯·æ±é½ä¼å®ä¾ä¸ä¸ªactionï¼æ¯ä¸ªactioné½ä¼è¢«æ³¨å ¥å±æ§ï¼èspringåºäºæ¹æ³ï¼ç²åº¦æ´ç»ï¼ä½è¦å°å¿ææ¡åå¨servletæ§å¶æ°æ®ä¸æ ·ãspring3 mvcæ¯æ¹æ³çº§å«çæ¦æªï¼æ¦æªå°æ¹æ³åæ ¹æ®åæ°ä¸ç注解ï¼ærequestæ°æ®æ³¨å ¥è¿å»ï¼å¨spring3 mvcä¸ï¼ä¸ä¸ªæ¹æ³å¯¹åºä¸ä¸ªrequestä¸ä¸æãèstruts2æ¡æ¶æ¯ç±»çº§å«çæ¦æªï¼æ¯æ¬¡æ¥äºè¯·æ±å°±å建ä¸ä¸ªActionï¼ç¶åè°ç¨setter getteræ¹æ³ærequestä¸çæ°æ®æ³¨å ¥ï¼struts2å®é ä¸æ¯é setter getteræ¹æ³ä¸requestæ交éçï¼struts2ä¸ï¼ä¸ä¸ªAction对象对åºä¸ä¸ªrequestä¸ä¸æã
3. åæ°ä¼ éï¼
strutsæ¯å¨æ¥ååæ°çæ¶åï¼å¯ä»¥ç¨å±æ§æ¥æ¥ååæ°ï¼è¿å°±è¯´æåæ°æ¯è®©å¤ä¸ªæ¹æ³å ±äº«çã
4. 设计ææ³ä¸ï¼
strutsæ´å 符åoop(é¢å对象ç¼ç¨)çç¼ç¨ææ³ï¼ springå°±æ¯è¾è°¨æ ï¼å¨servletä¸æ©å±ã
5. intercepterçå®ç°æºå¶ï¼
strutsæèªå·±çinterceptoræºå¶ï¼spring mvcç¨çæ¯ç¬ç«çAOPæ¹å¼ãè¿æ ·å¯¼è´strutsçé ç½®æ件éè¿æ¯æ¯spring mvc大ï¼è½ç¶strutsçé ç½®è½ç»§æ¿ï¼æ以æè§å¾è®ºä½¿ç¨ä¸æ¥è®²ï¼spring mvc使ç¨æ´å ç®æ´ï¼å¼åæçSpring MVCç¡®å®æ¯struts2é«ãspring mvcæ¯æ¹æ³çº§å«çæ¦æªï¼ä¸ä¸ªæ¹æ³å¯¹åºä¸ä¸ªrequestä¸ä¸æï¼èæ¹æ³åæ¶åè·ä¸ä¸ªurl对åºï¼æ以说ä»æ¶ææ¬èº«ä¸spring3 mvc就容æå®ç°restful urlãstruts2æ¯ç±»çº§å«çæ¦æªï¼ä¸ä¸ªç±»å¯¹åºä¸ä¸ªrequestä¸ä¸æï¼å®ç°restful urlè¦è´¹å²ï¼å 为struts2 actionçä¸ä¸ªæ¹æ³å¯ä»¥å¯¹åºä¸ä¸ªurlï¼èå ¶ç±»å±æ§å´è¢«æææ¹æ³å ±äº«ï¼è¿ä¹å°±æ æ³ç¨æ³¨è§£æå ¶ä»æ¹å¼æ è¯å ¶æå±æ¹æ³äºãspring3 mvcçæ¹æ³ä¹é´åºæ¬ä¸ç¬ç«çï¼ç¬äº«request responseæ°æ®ï¼è¯·æ±æ°æ®éè¿åæ°è·åï¼å¤çç»æéè¿ModelMap交åç»æ¡æ¶æ¹æ³ä¹é´ä¸å ±äº«åéï¼èstruts2æçå°±æ¯è¾ä¹±ï¼è½ç¶æ¹æ³ä¹é´ä¹æ¯ç¬ç«çï¼ä½å ¶ææActionåéæ¯å ±äº«çï¼è¿ä¸ä¼å½±åç¨åºè¿è¡ï¼å´ç»æ们ç¼ç ï¼è¯»ç¨åºæ¶å¸¦æ¥éº»ç¦ã
6. å¦å¤ï¼spring3 mvcçéªè¯ä¹æ¯ä¸ä¸ªäº®ç¹ï¼æ¯æJSRï¼å¤çajaxç请æ±æ´æ¯æ¹ä¾¿ï¼åªéä¸ä¸ªæ³¨è§£@ResponseBody ï¼ç¶åç´æ¥è¿åååºææ¬å³å¯ã
springMVCåMybatisçåºå«åè æä¸è¬æ¯å¨é»è¾å±ä½¿ç¨çï¼åè æ¯å¨æ°æ®åºçæä¹ å±ç¨çï¼å®ä»¬ä¸¤ä¸ªåºç¨çå°æ¹ä¸ä¸æ ·ï¼ç¸å ³çé ç½®æ件çåæ³ä¹ä¸ä¸æ ·ï¼å¸æå¯¹ä½ æ帮å©ï¼
springmvcåstrtusçåºå«åè½ä¸æ²¡å¥åºå«ã struts2 mvc æ¯è¾éé级ç¹ï¼åè½å¼ºå¤§ã spring mvc æ´è½»éï¼å¼åçµæ´»ã å¤æ³¨ï¼æ ¹æ®å®é å¼åéæ±æ¥ç¡®è®¤è¯¥æä¹è¿è¡å¼åå³å¯ï¼é常äºå¡è¦æ±å¼ºçå°±ç¨Springãåå°±æ¯å¯ä»¥éè¿SSHæ¡æ¶æ¥ç´æ¥åºç¨webç¨åºå¼åã
C4åC3æ¤ç©çåºå«?ä¸æ¯ç»´ç®¡æéï¼C3æ¤ç©ç维管æéç»èæ å¶ç»¿ä½ãC4æ¤ç©ç维管æéç»èå å«æ åºç²çå¶ç»¿ä½ä¸ç»èæ¯è¾å¤§ï¼äºæ¯å åä½ç¨ä¸CO2çåºå®éå¾ï¼C3æ¤ç©CO2çåºå®æ¯è¢«C5ä¸CO2ç»åå½¢æC3ï¼ä¸éè½éä» éé ¶ï¼ä¸æååºä¸CO2çè¿ååçå¨åä¸ç»èçåä¸å¶ç»¿ä½å ï¼C4æ¤ç©çCO2ç第ä¸æ¬¡åºå®éè¦æ¶èè½éï¼ç¬¬ä¸æ¬¡åºå®ä¸è¿åä¸å¨åä¸ç»èå å®æã
springmvcåsshï¼s *** çåºå«é¦å ï¼
SSHæ¡æ¶æ¯Struct+Spring+Hibernateçæ»ç§°
SSMæ¡æ¶æ¯Spring-MVC+Spring+MyBatisçæ»ç§°
åºç¨å½ä¸çåºå«ä¸»è¦ä½ç°å¨ä»¥ä¸3个æ¹é¢ï¼1ãSpring-MVCæ¯æ¹æ³æ¦æªï¼å®ç°å®å ¨è§£è¦ï¼ï¼Structæ¯ç±»æ¦æªã
2ã请æ±Structçæ¶åéè¿struts.xmlé ç½®æ件ï¼è¯·æ±Spring-MVCçæ¶åç´æ¥éè¿è·¯å¾æ¦æªæ³¨è§£æ¾å°ã
3ã使ç¨SSHæ¡æ¶sqlè¯å¥åå¨Daoå±ï¼è使ç¨SSMæ¡æ¶sqlè¯å¥æ¯åå¨é ç½®æ件ä¸çã
springMVC Model ModelMap å ModelAndViewçåºå«ModelMapåªæ¯ç¨æ¥åæ°æ®ï¼ModelAndView对象å¯ä»¥åæ°æ®ï¼åæ¶ä¹è½åæ¹æ³æ§è¡å跳转çå°å
Modelæ¯å å«å个addAttribute åä¸ä¸ª merAttributeæ¹æ³çæ¥å£ã
ModelMap ï¼å®ç°äºMapæ¥å£ï¼å å«Mapæ¹æ³ãè§å¾å±éè¿requestæ¾å°ModelMapä¸çæ°æ®ã
ModelAndViewï¼æ¯å å«ModelMap åè§å¾å¯¹è±¡ç容å¨ãæ£å¦ååæ示çä¸æ ·æ¢å å«æ¨¡åä¹å å«è§å¾ï¼èModelMapåªæ¯å å«æ¨¡åçä¿¡æ¯ã
springMVC4.0+mybatis Invalid bound statement (not found)
我也遇到这个问题,我的源码是springboot+ibatis,你有没有用maven,源码找到一种和maven有关的源码酷信源码技术情况,我也是源码在网上看到了,刚解决:异常:org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.xwq.project.dao.ClothesDao.queryList
原因:编译默认只把src/main/下的源码java文件编译后放进target/classes里,而ibatis的mapper.xml文件则没有搬运过去,所以导致程序运行到Dao层找不到对应方法
解决:在pom.xml里的<build><resources></resources></build>加入以下内容
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.xml</include>
</includes>
</resource>
感谢:网页链接第6楼的回答
è¯´è¯´ä½ å¯¹springbootçç解(å¦ä½ç解springboot)
springbootçç®åç解
ä¾èµç±maven管çï¼1ä¸è°
2å ¶å®å°±æ¯è¦æä¾èµçjarå éçconfigçæ
ççspringbootç注解
æ ¸å¿æ³¨è§£æ¯è¿å ç¦ è¿ æ¶ä¸ªï¼
@SpringBootConfigurationï¼ç»åäº@Configuration注解ï¼å®ç°é ç½®æ件çåè½ã
@EnableAutoConfigurationï¼æå¼èªå¨é ç½®çåè½ã
@ComponentScanï¼Springç»ä»¶æ«æã
å ¶ä¸ï¼@EnableAutoConfiguration
è¿éimportäºAutoConfigurationImportSelectorï¼è¿ä¸ªç±»éè¿SpringFactoriesLoader.loadFactoryNameså è½½ä¾èµå ä¸çMETA-INF/spring.factories
importãconfigurationãcomponentscanè¿å 个注解é½æ¯éè¿ææConfigurationClassPostProcessorå®ç°çï¼è¿ä¸ªåå¤çå¨æ¯ä¸ä¸ªbeanfactoryåå¤çå¨
å¦ä¸æè¿°ï¼springbootä¼å è½½ä¾èµä¸çspring.factoriesæ件ï¼é£ä¹åªè¦å¨å ¶ä¸é ç½®èªå·±çconfigç±»ï¼å°±å¯ä»¥è¢«springåç°äºã
è´´ä¸ä¸ªå ¸åçspring.factoriesæ件
äºæ¯MybatisPlusAutoConfigurationä¼è¢«æ¡æ¶åç°ï¼è¿ä¸ªç±»éè¿@Configuration注解å¯ä»¥ä½ä¸ºconfig类被springçº³å ¥ï¼ç±»ä¸æ¡æ¶ä½è 声æçä¸äº@Beanå¯ä»¥ä½ä¸ºé»è®¤é ç½®çæï¼ææåèªå·±å¨application-contextä¸é ç½®ã
å¦ä¸ä¸ªå ³æ³¨çç¹æ¯springbootçé ç½®æ件ï¼ymlæpropertiesæ¯å¦ä½è¢«å è½½çï¼ä»¥åæ们使ç¨é ç½®æ件ä¸åéçå®ç°
spring-boot-autoconfigure模åå·²ç»å¸®æ们å ç½®äºä¸å¤§ç常ç¨çAutoConfigurationï¼é常é½ä¼æä¸äºcondition注解å»è§¦åï¼å¦ææ们å¼å ¥äºç¸å ³çstarterå°±ä¼è§¦åå ¶ä¸çé ç½®ãè¿ä¹æ¯æè°â约å®å¤§äºé ç½®âçä¸ç§ä½ç°.
springboot帮æ们åç两件äºï¼ä¸ä¸ªæ¯éè¿starterå¼å ¥æ们éè¦çæ¡æ¶ï¼starterè´è´£å¼å ¥èªå·±çä¾èµï¼å¦ä¸ä¸ªæ¯éè¿autoconfigureçæä¸äºé»è®¤çé ç½®ï¼ç®åæ们ç使ç¨ï¼è¿ä¸æ¥æ¯éè¿spring.factoriesä¸å®ä¹çé 置类å®ç°çã
以ä¸å°±æ¯ææ¶å¯¹springbootæ¯è¾æµ çç解ï¼å¾ åç»æ·±å ¥ã
æ·±å ¥springbootåè´ºç¥çââä¸æ¥æ¥åæspringbootå¯å¨æºå¶ï¼starteræºå¶ï¼
æææå¸¦ä½ åæSpringbootå¯å¨åçï¼
SpringBoot读åé ç½®çå ç§æ¹å¼
为ä»ä¹è¶æ¥è¶å¤çå¼åè éæ©ä½¿ç¨SpringBoot(1)SpringBoot使ç¼ç åç®å
(2)SpringBoot使é ç½®åç®å
(3)SpringBoot使é¨ç½²åç®å
(4)SpringBoot使çæ§åç®å
SpringBoot继æ¿äºSpringçä¼ç¹ï¼å¹¶æ°å¢äºä¸äºæ°åè½åç¹æ§ï¼
(1)SpringBootæ¯ä¼´éçSpring4.0è¯ççï¼ä¸ç»æ¨åºï¼å¼èµ·äºå·¨å¤§çåå;
(2)ä»åé¢ç解ï¼Bootæ¯å¼å¯¼çææï¼å æ¤SpringBoot帮å©å¼åè å¿«éæ建Springæ¡æ¶;
(3)SpringBoot帮å©å¼åè å¿«éå¯å¨ä¸ä¸ªWeb容å¨;
(4)SpringBoot继æ¿äºåæSpringæ¡æ¶çä¼ç§åºå ;
(5)SpringBootç®åäºä½¿ç¨Springçè¿ç¨;
(6)SpringBoot为æ们带æ¥äºèæ¬è¯è¨å¼åçæçï¼ä½æ¯SpringBoot并没æ让æ们æå¤çæ°ææ¯ï¼é½æ¯JavaEEå¼åè 常è§çé¢ææ¯ã
SpringBoot主è¦ç¹æ§
(1)éµå¾ªâä¹ æ¯ä¼äºé ç½®âçååï¼ä½¿ç¨SpringBootåªéè¦å¾å°çé å·ææ»ç½®ï¼å¤§é¨åçæ¶åæ们ç´æ¥ä½¿ç¨é»è®¤çé ç½®å³å¯;
(2)项ç®å¿«éæ建ï¼å¯ä»¥æ éé ç½®çèªå¨æ´å第ä¸æ¹çæ¡æ¶;
(3)å¯ä»¥å®å ¨ä¸ä½¿ç¨XMLé ç½®æ件ï¼åªéè¦èªå¨é ç½®åJavaConfig;
(4)å åµServlet容å¨è¿è ï¼éä½åè äºå¯¹ç¯å¢çè¦æ±ï¼å¯ä»¥ä½¿ç¨å½ä»¤ç´æ¥æ§è¡é¡¹ç®ï¼åºç¨å¯ç¨jarå æ§è¡ï¼java-jar;
(5)æä¾äºstarterPOM,è½å¤é常æ¹ä¾¿çè¿è¡å 管ç,å¾å¤§ç¨åº¦ä¸åå°äºjarhellæè dependencyhell;
(6)è¿è¡ä¸åºç¨ç¶æççæ§;
(7)对主æµå¼åæ¡æ¶çæ é ç½®éæ;
(8)ä¸äºè®¡ç®ç天ç¶ç»§æ¿;
ä»ä¹æ¯SpringBootï¼
SpringBootå¯ä»¥è½»æ¾å建ç¬ç«çãç产级çåºäºSpringçåºç¨ç¨åºï¼æ¨å¯ä»¥âç´æ¥è¿è¡âè¿äºåºç¼äº®ç¨ç¨åºã
æ们对Springå¹³å°å第ä¸æ¹åºéåäºåºæ§çè§ç¹ï¼å æ¤æ¨å¯ä»¥è½»æ¾ä¸æé¹é«ã大å¤æ°SpringBootåºç¨ç¨åºéè¦æå°çSpringé ç½®ã
Springä¸å½æè²ç®¡çä¸å¿
ç¹å¾
å建ç¬ç«çSpringåºç¨ç¨åº
ç´æ¥åµå ¥TomcatãJettyæUndertowï¼æ éé¨ç½²WARæ件ï¼
æä¾èªä»¥ä¸ºæ°å¼¯å®½æ¯çâå ¥é¨âä¾èµé¡¹ä»¥ç®åæ¨çæ建é ç½®
å°½å¯è½èªå¨é ç½®Springå3rdæ¹åº
æä¾ç产就绪åè½ï¼ä¾å¦ææ ãè¿è¡ç¶åµæ£æ¥åå¤é¨åé ç½®
å®å ¨ä¸éè¦ä»£ç çæï¼ä¹ä¸éè¦XMLé ç½®
äºè§£æ´å¤ï¼å¯æ¥è¯¢Springä¸å½æè²ç®¡çä¸å¿ç¸å ³ä¿¡æ¯
springBootæ¯ä»ä¹ï¼SpringBootå¯ä»¥è½»æ¾å建å¯ä»¥âç´æ¥è¿è¡âçç¬æè¢è¿¹ç«çãç产级çåºäºSpringçåºç¨ç¨åºã
æ们对Springå¹³å°å第ä¸æ¹ä¿æåºæ§å·±è§ççæ³ï¼å æ¤æ¨å¯ä»¥è½»æ¾ä¸æã大å¤æ°SpringBootåºç¨ç¨åºéè¦æå°çæ¶é´Springé ç½®ã
å ¶ç¹å¾å¦ä¸ï¼
å建ç¬ç«çSpringåºç¨ç¨åº
ç´æ¥åµå ¥TomcatãJettyæUndertowï¼æ éé¨ç½²WARæ件ï¼
æä¾èªä»¥ä¸ºæ¯çâå ¥é¨âä¾èµé¡¹ä»¥ç®åæ¨çæ建é ç½®
å°½å¯è½èªå¨é ç½®Springå3rdæ¹åº
æä¾ç产就绪åè½ï¼ä¾å¦ææ ãå¥åº·æ£æ¥åå¤é¨åé ç½®
å®å ¨æ é代ç çæï¼æ éXMLé ç½®
Springå¿«éå ¥é¨æå
第ä¸æ¥ï¼å¯å¨ä¸ä¸ªæ°çSpringBoot项ç®
空并å©ç¨å¯å¨.spring.ioå建ä¸ä¸ªâç½ç»â项ç®ãå¨âä¾èµé¡¹â对è¯æ¡ä¸æ索并添å âwebâä¾èµé¡¹ï¼å¦å±å¹æªå¾æ示ãç¹å»âçæâæé®ï¼ä¸è½½zipï¼ç¶åå°å ¶è§£å缩å°è®¡ç®æºä¸çæ件夹ä¸ã
å建ç项ç®å¯å¨.spring.ioå å«å¼¹ç°§é´ï¼ä¸ä¸ªä½¿Springåå¤å¥½å¨æ¨çåºç¨ç¨åºä¸å·¥ä½çæ¡æ¶ï¼ä½ä¸éè¦å¤ªå¤ä»£ç æé ç½®ãSpringBootæ¯å¯å¨Spring项ç®çæå¿«åææµè¡çæ¹å¼ã
第2æ¥ï¼æ·»å æ¨ç代ç
å¨IDEä¸æå¼é¡¹ç®å¹¶å¨æ件夹DemoApplication.javaä¸æ¾å°è¯¥æ件
src/main/java/com/example/demoãç°å¨éè¿æ·»å ä¸é¢ä»£ç ä¸æ¾ç¤ºçé¢å¤æ¹æ³å注éæ¥æ´æ¹æ件çå 容ãæ¨å¯ä»¥å¤å¶å¹¶ç²è´´ä»£ç æç´æ¥è¾å ¥ã
hello()æ们添å çæ¹æ³æ¨å¨è·åä¸ä¸ªå为çå符串åæ°nameï¼ç¶åå°è¯¥åæ°ä¸"Hello"代ç ä¸çåè¯ç»åèµ·æ¥ãè¿æå³çå¦ææ¨âAmyâå¨è¯·æ±ä¸å°æ¨çå§å设置为ï¼åååºå°ä¸ºâHelloAmyâ.
RestController注éåè¯Springè¿æ®µä»£ç æè¿°äºä¸ä¸ªåºè¯¥å¨webä¸å¯ç¨ç端ç¹ãGetMapping(â/helloâ)åè¯Spring使ç¨æ们çæ¹æ³hello()æ¥åçåéå°è¯¥
å°åç请æ±ãæåï¼RequestParamåè¯Springnameå¨è¯·æ±ä¸æå¾ ä¸ä¸ªå¼ï¼ä½å¦æå®ä¸åå¨ï¼å®å°é»è®¤ä½¿ç¨åè¯âWorldâã
第3æ¥ï¼å°è¯ä¸ä¸
让æ们æ建并è¿è¡ç¨åºãæå¼å½ä»¤è¡ï¼æç»ç«¯ï¼å¹¶å¯¼èªå°æ¨æ¥æ项ç®æ件çæ件夹ãæ们å¯ä»¥éè¿ååºä»¥ä¸å½ä»¤æ¥æå»ºç¦ ç©ºåè¿è¡åºç¨ç¨åºï¼
æ¨åºè¯¥ä¼çå°ä¸äºä¸æ¤é常ç¸ä¼¼çè¾åºï¼
è¿éçæåå è¡åè¯æ们Springå·²ç»å¼å§äºãSpringBootçåµå ¥å¼ApacheTomcatæå¡å¨å å½Webæå¡å¨ï¼å¹¶æ£å¨ä¾¦å¬localhostportä¸ç请æ±ãæå¼æµè§å¨ï¼å¨é¡¶é¨çå°åæ ä¸è¾å ¥ä½ 好.ä½ åºè¯¥å¾å°ä¸ä¸ªå¾å¥½çå好ååºï¼å¦ä¸æ示ï¼
SpringBoot-ç®ä»æ¥è§¦SpringBootå·²ç»å¾é¿æ¶é´äºï¼ä½å¯¹SpringBootçç解è¿æ¯èèå®å®ï¼æ¾ä¸çåï¼æ以å³å®è±ä¸äºæ¶é´æ»è§£ä¸ï¼è½ç¶ä¸ç¥éè½ä¸è½åæä¸æ¥ï¼ä½å å¼å§å§ï¼
SpringBootæ¯ä¸ä¸ªä¾¿äºå建ç¬ç«çãç产级çãåºäºSpringçåºç¨ç¨åºæ¡æ¶ï¼ä½ å¯ä»¥å¾æ¹ä¾¿çå¯å¨ç¨åºã
以ä¸æ¯SpingBootå®æ¹ç»çç¹ç¹åæ´ï¼æ¶µçäºSpringBootç主è¦ç¹æ§ï¼ä¸é¢ä¹è°è°èªå·±ç使ç¨å¿å¾ã
å¯ä»¥å¨ç½ç«ç´æ¥å建ï¼ä¹å¯ä»¥ä½¿ç¨IDEAçIDEå建ï¼å¯ä»¥éæ©åºäºMavenæGradleå·¥ç¨
å®ç½å建工ç¨ï¼
SpringBootæ¯æå建jarå åwarå ãå建çjarå æ¯å åµtomcatï¼å¯ä»¥éè¿java-jarxxx.jarå½ä»¤å¯å¨ãå建warå æ¯å¤ç½®tomcatï¼å¯ä»¥æ¾å°tomcat容æå¯å¨
ä½ä¸ºçº¦å®ä¼äºé ç½®ï¼
ç®åæ¥è¯´å°±æ¯ä¸¤ç¹
SpringBoot项ç®ç约å®
SpringBootå建å®æåé»è®¤çé ç½®æ件æ¯ä»¥properties为åç¼åï¼SpringBootæ¯æå°åç¼åæ¹ä¸ºymlãymlåç¼åçé ç½®æ件å¯è¯»æ§æ´å èé
SpringBootæ¯Springçä¸å¥å¿«éé ç½®èææ¶ï¼å¯ä»¥åºäºSpringBootå¿«éå¼åå个微æå¡ï¼èSpringCloudæ¯ä¸ä¸ªåºäºSpringBootå®ç°çå¾®æå¡æ¡æ¶ã
SpringBootæ¯æç¬ä¸ä¸ªåºäºSpringçå¿«éå¼åæ¡æ¶ï¼å®éè¿âæ人æ´åå âï¼starterï¼å°Spring常ç¨çjarå å å«å¨å ï¼è§£å³Springä¾èµç¹å¤é®é¢ãéè¿è¡«ç¬å«åä¸é ç½®æ件ï¼è§£å³äºä¼ ç»é¡¹ç®ç¹å¤ãå¤æçé ç½®ã约å®ä¼äºé ç½®çåå使项ç®æ建起æ¥æ´å¤æ¹ä¾¿å¿«æ·ã
SpringBootæ¯ä»ä¹ï¼æä»ä¹ç¨SpringBootå åå©ç¨äºJavaConfigçé 置模å¼ä»¥åâ约å®ä¼äºé ç½®âçç念ï¼è½å¤æ大çç®ååºäºSpringMVCçWebåºç¨åRESTæå¡å¼åãSpring4å¡å¯¼å¾®æå¡çæ¶æï¼é对è¿ä¸ç念èæï¼ç©ºçº³å¥½è¿æ¥å¨å¾®åä¸ä¹æä¸äºæä»·å¼ç讨论ï¼å¦è¿éåæé è¿éãå¾®æå¡æ¶æå¡å¯¼å°åè½æåå°ç¦»æ£çæå¡ä¸ï¼ç¬ç«å°è¿è¡é¨ç½²ï¼SpringBootè½å¤å¾æ¹ä¾¿å°å°åºç¨æå æç¬ç«å¯è¿è¡çJARå ï¼å æ¤å¨å¼å模å¼ä¸å¾å¥åè¿ä¸ç念ãç®åï¼SpringBootä¾ç¶æ¯0.5.0çéç¨ç¢çæ¬ï¼å æ¤ç¸å ³çææ¡£å°ä¸å®åï¼æ¬æå°ä¼ä»¥ä¸ä¸ªç®åçæ ·ä¾æ¥ä»ç»åºäºè¿ä¸ªé¡¹ç®çå¼åè¿ç¨ãè¦SpringBootè¿è¡åè½å¼åï¼éè¦ä½¿ç¨Gradleæè Mavenä½ä¸ºæå»ºå·¥å ·ãå¨æ¬ä¾ä¸ï¼æ们ä¼ä½¿ç¨EclipseåMavenæ件è¿è¡å¼åãè¦ä½¿ç¨SpringBoot
Spring认证中国教育管理中心-Spring Data Elasticsearch教程一
Spring认证中国教育管理中心提供Spring Data Elasticsearch教程,着重讲解了不同类型的源码客户端选择和配置。
5.1 传输客户端
自Elasticsearch 7起,源码TransportClient被弃用,源码并将在Elasticsearch 8完全移除。源码尽管在可用版本中Spring Data Elasticsearch仍支持,源码邮箱 PHP源码但从4.0开始,源码推荐使用更高级别的源码REST客户端。
5.2 高级REST客户端
Java High Level REST Client是源码官方首选,它与TransportClient功能类似,源码但无需与集群名称交互。源码屋免费它支持异步操作,可通过构建器设置集群地址、HTTP头和SSL选项。
5.3 反应式客户端
ReactiveElasticsearchClient基于WebClient,操作在响应式堆栈上,强弱天王源码无需线程池。创建时,可配置集群地址、SSL和HTTP头,搜索操作会绑定from和size参数。网店源码查看
5.4 客户端配置
客户端行为可以通过ClientConfiguration进行调整,包括SSL设置、超时和自定义标头,如身份验证和供应商函数。
5.5 日志记录
要查看请求和响应内容,需开启传输层日志,适用于RestHighLevelClient和ReactiveElasticsearchClient。
6. Elasticsearch对象映射
Spring Data Elasticsearch负责Java对象到Elasticsearch JSON映射,从3.2.x开始,Meta Model Object Mapping是主要映射方式,不再使用Jackson映射器。
6.1 元模型对象映射
基于元模型映射依赖于域类型信息,允许为特定类型注册映射器实例。注释用于提供映射元数据,包括日期格式、范围类型和字段名称自定义。