第一篇:Eclipse初次java開發(fā)問題總結(jié)-4-Maven使用問題匯總
Eclipse初次java開發(fā)問題總結(jié)-4-Maven使用問題匯總
Non-resolvable parent POM [INFO] Scanning for projects...[ERROR] The build could not read 1 project-> [Help 1] [ERROR]
[ERROR]
The project com.iflytek.ossp:ossp-resserver-service:1.0.0-SNAPSHOT(C:UsersmoonDesktopossp-resservice-mavenossp-resserver-servicepom.xml)has 1 error [ERROR]
Non-resolvable parent POM: Could not find artifact com.iflytek.ossp:ossp-resserver-all:pom:1.0.0-SNAPSHOT and 'parent.relativePath' points at wrong local POM @ line 11, column 10-> [Help 2] [ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the-e switch.[ERROR] Re-run Maven using the-X switch to enable full debug logging.[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles: [ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/ProjectBuildingException [ERROR] [Help 2] http://cwiki.apache.org/confluence/display/MAVEN/UnresolvableModelException 無法解析父級(jí)的POM文件,應(yīng)該是是POM文件中使用了繼承。
可以嘗試加入
[ERROR] Please ensure you are using JDK 1.4 or above and [ERROR] not a JRE(the com.sun.tools.javac.Main class is required).[ERROR] In most cases you can change the location of your Java [ERROR] installation by setting the JAVA_HOME environment variable.[ERROR]-> [Help 1] [ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the-e switch.[ERROR] Re-run Maven using the-X switch to enable full debug logging.[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles: [ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException
出現(xiàn)類似的錯(cuò)誤應(yīng)該是Jre配置問題:
右擊項(xiàng)目->Java Buid Path->Libraries->JRE->Edit->Install JREs...->Edit->JRE system libraries->Add External JREs..->找到缺少的jar(toos.jar)添加進(jìn)去。
No goals have been specified for this build.Maven Buid時(shí)出現(xiàn)下面這個(gè)錯(cuò)誤:
[ERROR] No goals have been specified for this build.You must specify a valid lifecycle phase or a goal in the format
: : [: ]: [ERROR] To see the full stack trace of the errors, re-run Maven with the-e switch.[ERROR] Re-run Maven using the-X switch to enable full debug logging.[ERROR] [ERROR] For more information about the errors and possible solutions, please read the following articles: [ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/NoGoalSpecifiedException 是因?yàn)闆]有指定buid goal,在POM文件中的buid節(jié)中加入默認(rèn)值就行了。 將第三方j(luò)ar包發(fā)布到私服 1、首先要修改eclipse中的Maven配置。 不要使用內(nèi)嵌的默認(rèn)配置。 指向Maven的安裝目錄。 2、配置Maven的setting.xml xmlns:xsi=“http://004km.cn/2001/XMLSchema-instance” xsi:schemaLocation=“http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd”> 123 123 3、發(fā)布第三方j(luò)ar包 環(huán)境組成:Eclipse4.2+JDK 1.6+Android SDK v21+ ADT 一、安裝Eclipse + JDK Eclipse是一款免費(fèi)開源的開發(fā)工具,它提供的僅僅是一個(gè)框架,其特點(diǎn)在于插件開發(fā),即它可以添加插件,根據(jù)不同的功能需求只需安裝相應(yīng)的插件即可。 Eclipse是一款輕量級(jí)的插件,直接點(diǎn)擊exe文件即可運(yùn)行,不需安裝,不需寫入注冊(cè)表等各種操作。據(jù)說3.8版本性能要高于4.2.Eclipse本身并不包括JDK,(MyEclipse也是如此)因此還要自己安裝JDK。JDK包括一些可執(zhí)行文件和類庫,比如JAVA編譯器、JRE(java運(yùn)行時(shí)環(huán)境,即java虛擬機(jī),java程序運(yùn)行比不可少)。據(jù)說JDK1.6運(yùn)行速度要比其他版本要好很多。JDK可直接運(yùn)行,安裝完之后,還要添加環(huán)境變量,這里我有點(diǎn)疑惑,書上寫的和網(wǎng)上查的不一樣,為保險(xiǎn)起見我取了并集: 首先添加Path=C:Program FilesJavajdk1.6.0_24bin和C:Program FilesJavajdk1.6.0_24jre bin,然后添加classPath=C:Program FilesJavajdk1.6.0_24lib和C:Program FilesJavajdk1.6.0_24libtools.jar.這樣JDK安裝完畢。 二、Android SDK安裝 首先下載Android SDK,我在網(wǎng)上隨便搜的,好像這個(gè)SDK要與Eclipse版本匹配才行,因此在搜時(shí)要注明Eclipse的版本。然后運(yùn)行SDK Manager,這才是真正的下載Android SDK,文件很多,速度超級(jí)慢,得幾個(gè)小時(shí)。網(wǎng)上有快的方法,但是挺復(fù)雜。下載的內(nèi)容主要是各個(gè)SDK版本的platform以及API。然后添加該文件夾下的tools文件夾目錄添加到path環(huán)境變量中。 三、Eclipse安裝ADT ADT是一個(gè)插件,google開發(fā)的方便在Eclipse下進(jìn)行安卓開發(fā)的插件,其實(shí)用記事本程序同樣可以開發(fā)安卓程序,只不過這樣更方便。 這要利用Eclipse的自動(dòng)下載功能,方法是在Eclipse菜單中選擇安裝新軟件,然后輸入https://dl-sll.google.com/android/eclipse,然后會(huì)自動(dòng)搜索相關(guān)軟件。我剛開始選擇全部安裝,但是每次都失敗,后來只選擇了DDMS和android development tools就成功了。 這樣開發(fā)環(huán)境就搭建好了。 Ps.然后還要?jiǎng)?chuàng)建android開發(fā)的模擬器,這個(gè)要用到AVDM,網(wǎng)上很多教程,很簡(jiǎn)單就搜到,我也沒搞清楚怎么回事,只是按照步驟創(chuàng)建成功了。 在用到spring框架中時(shí),場(chǎng)景如下 post 請(qǐng)求過去,對(duì)象接收不到參數(shù)的值(解決辦法:考慮到在參數(shù)上加個(gè)@RequestBody 注解即可,有些沒加的是框架幫忙處理了后默認(rèn)接收的是json串)http://localhost:8080/xxxxxxxxxxx-xxxxxxx-api/xxxxxx/xxxxx/xxxxxxxxx/suggest/add.sgt ======================================== mapper.xml->@Repository{存儲(chǔ)數(shù)據(jù)層}->@Service{業(yè)務(wù)層}->@Controller{展示層}(spring注解可以理解為這樣的線性,任其項(xiàng)目結(jié)構(gòu)怎么變這樣的線性結(jié)構(gòu)是不會(huì)變的,萬變不離其宗) @Repository @Service @Controller均是注冊(cè)在spring上下文中 @Autowired 在spring上下文中找bean @Qualifier 配合 @Autowired使用 當(dāng)找到多個(gè)同一類型的bean,則會(huì)拋異常,此時(shí)可以使用 @Qualifier(“beanName”),明確指定bean的名稱進(jìn)行注入 @RequestMapping 配置連接 @Required 注冊(cè)在sett方法上,檢查有沒有被調(diào)用 @RequestParam 綁定參數(shù) @RequestBody讀取Request請(qǐng)求的body部分?jǐn)?shù)據(jù),使用系統(tǒng)默認(rèn)配置的HttpMessageConverter進(jìn)行解析,然后把相應(yīng)的數(shù)據(jù)綁定到要返回的對(duì)象上 如果你也用過struts2.簡(jiǎn)單介紹下springMVC和struts2的區(qū)別有哪些? springmvc的入口是一個(gè)servlet即前端控制器,而struts2入口是一個(gè)filter過慮器。 springmvc是基于方法開發(fā)(一個(gè)url對(duì)應(yīng)一個(gè)方法),請(qǐng)求參數(shù)傳遞到方法的形參,可以設(shè)計(jì)為單例或多例(建議單例),struts2是基于類開發(fā),傳遞參數(shù)是通過類的屬性,只能設(shè)計(jì)為多例。 Struts采用值棧存儲(chǔ)請(qǐng)求和響應(yīng)的數(shù)據(jù),通過OGNL存取數(shù)據(jù),springmvc通過參數(shù)解析器是將request請(qǐng)求內(nèi)容解析,并給方法形參賦值,將數(shù)據(jù)和視圖封裝成ModelAndView對(duì)象,最后又將ModelAndView中的模型數(shù)據(jù)通過reques域傳輸?shù)巾撁?。Jsp視圖解析器默認(rèn)使用jstl。2.Spring的事務(wù)是如何配置的? 先配置事務(wù)管理器TransactionManager,不同的框架有不同屬性。再配置事務(wù)通知和屬性,通過tx:advice。配置,設(shè)置那些方法或者類需要加入事務(wù)。 3.spring事務(wù)控制放在service層,在service方法中一個(gè)方法調(diào)用service中的另一個(gè)方法,默認(rèn)開啟幾個(gè)事務(wù)? spring的事務(wù)傳播方式默認(rèn)是PROPAGATION_REQUIRED,判斷當(dāng)前是否已開啟一個(gè)新事務(wù),有則加入當(dāng)前事務(wù),否則新開一個(gè)事務(wù)(如果沒有就開啟一個(gè)新事務(wù)),所以答案是開啟了一個(gè)事務(wù)。4.spring 什么情況下進(jìn)行事務(wù)回滾? Spring、EJB的聲明式事務(wù)默認(rèn)情況下都是在拋出unchecked exception后才會(huì)觸發(fā)事務(wù)的回滾 unchecked異常,即運(yùn)行時(shí)異常runntimeException 回滾事務(wù);checked異常,即Exception可try{}捕獲的不會(huì)回滾.當(dāng)然也可配置spring參數(shù)讓其回滾.spring的事務(wù)邊界是在調(diào)用業(yè)務(wù)方法之前開始的,業(yè)務(wù)方法執(zhí)行完畢之后來執(zhí)行commit or rollback(Spring默認(rèn)取決于是否拋出runtime異常).如果拋出runtime exception 并在你的業(yè)務(wù)方法中沒有catch到的話,事務(wù)會(huì)回滾。 一般不需要在業(yè)務(wù)方法中catch異常,如果非要catch,在做完你想做的工作后(比如關(guān)閉文件等)一定要拋出runtime exception,否則spring會(huì)將你的操作commit,這樣就會(huì)產(chǎn)生臟數(shù)據(jù).所以你的catch代碼是畫蛇添足。5.Spring支持的事務(wù)管理類型? Spring支持兩種類型的事務(wù)管理: 編程式事務(wù)管理:這意味你通過編程的方式管理事務(wù),給你帶來極大的靈活性,但是難維護(hù)。 聲明式事務(wù)管理:這意味著你可以將業(yè)務(wù)代碼和事務(wù)管理分離,你只需用注解和XML配置來管理事務(wù)。 6.Spring框架的事務(wù)管理有哪些優(yōu)點(diǎn)? 它為不同的事務(wù)API 如 JTA,JDBC,Hibernate,JPA 和JDO,提供一個(gè)不變的編程模式。 它為編程式事務(wù)管理提供了一套簡(jiǎn)單的API而不是一些復(fù)雜的事務(wù)API如 它支持聲明式事務(wù)管理。 它和Spring各種數(shù)據(jù)訪問抽象層很好得集成。7.講下Spring的七大事務(wù)傳播? Spring中通過Propagation來設(shè)置事務(wù)的傳播屬性的,在這個(gè)屬性中提供了我們其中關(guān)于事務(wù)傳播的特性: PROPAGATION_REQUIRED:支持當(dāng)前事務(wù),如果當(dāng)前沒有事務(wù),就新建一個(gè)事務(wù)。這是最常見的選擇。 PROPAGATION_SUPPORTS:支持當(dāng)前事務(wù),如果當(dāng)前沒有事務(wù),就以非事務(wù)方式執(zhí)行。PROPAGATION_MANDATORY:支持當(dāng)前事務(wù),如果當(dāng)前沒有事務(wù),就拋出異常。PROPAGATION_REQUIRES_NEW:新建事務(wù),如果當(dāng)前存在事務(wù),把當(dāng)前事務(wù)掛起。PROPAGATION_NOT_SUPPORTED:以非事務(wù)方式執(zhí)行操作,如果當(dāng)前存在事務(wù),就把當(dāng)前事務(wù)掛起。 PROPAGATION_NEVER:以非事務(wù)方式執(zhí)行,如果當(dāng)前存在事務(wù),則拋出異常。PROPAGATION_NESTED:支持當(dāng)前事務(wù),新增Savepoint點(diǎn),與當(dāng)前事務(wù)同步提交或回滾。 8.事務(wù)并發(fā)會(huì)引起什么問題,怎么解決? 事務(wù)并發(fā)會(huì)引起臟讀,幻讀,不可重復(fù)讀等問題,設(shè)定事務(wù)的隔離級(jí)別就可以解決。 9.事務(wù)的安全問題:鎖機(jī)制的實(shí)現(xiàn)原理及在項(xiàng)目中的使用? 鎖有悲觀鎖和樂觀鎖,悲觀鎖一般假設(shè)每個(gè)人都會(huì)修改數(shù)據(jù),默認(rèn)情況下把數(shù)據(jù)都鎖住,影響性能,但安全性高.樂觀鎖是假設(shè)每個(gè)人都只讀下數(shù)據(jù),不會(huì)修改數(shù)據(jù),性能比較高,但是安全性較低,一般通過增加類似于版本控制里面版本號(hào)來解決問題。10.講下BeanFactory和ApplicationContext的區(qū)別? BeanFactory是Spring容器頂級(jí)核心接口,比較早,但功能比較少,getBean就是BeanFactory定義的。 ApplicationContext是Spring里面的另外一個(gè)容器頂級(jí)接口,它繼承于BeanFactory,但是提供的功能譬如校驗(yàn),國際化,監(jiān)聽,對(duì)Bean的管理功能比較多,一般使用ApplicationContext。11.簡(jiǎn)單介紹下你對(duì)mybatis的理解? mybatis配置 SqlMapConfig.xml,此文件作為mybatis的全局配置文件,配置了mybatis的運(yùn)行環(huán)境等信息。mapper.xml文件即sql映射文件,文件中配置了操作數(shù)據(jù)庫的sql語句。此文件需要在SqlMapConfig.xml中加載。 通過mybatis環(huán)境等配置信息構(gòu)造SqlSessionFactory即會(huì)話工廠 由會(huì)話工廠創(chuàng)建sqlSession即會(huì)話,操作數(shù)據(jù)庫需要通過sqlSession進(jìn)行。mybatis底層自定義了Executor執(zhí)行器接口操作數(shù)據(jù)庫,Executor接口有兩個(gè)實(shí)現(xiàn),一個(gè)是基本執(zhí)行器、一個(gè)是緩存執(zhí)行器。 Mapped Statement也是mybatis一個(gè)底層封裝對(duì)象,它包裝了mybatis配置信息及sql映射信息等。mapper.xml文件中一個(gè)sql對(duì)應(yīng)一個(gè)Mapped Statement對(duì)象,sql的id即是Mapped statement的id。 Mapped Statement對(duì)sql執(zhí)行輸入?yún)?shù)進(jìn)行定義,包括HashMap、基本類型、pojo,Executor通過Mapped Statement在執(zhí)行sql前將輸入的java對(duì)象映射至sql中,輸入?yún)?shù)映射就是jdbc編程中對(duì)preparedStatement設(shè)置參數(shù)。 Mapped Statement對(duì)sql執(zhí)行輸出結(jié)果進(jìn)行定義,包括HashMap、基本類型、pojo,Executor通過Mapped Statement在執(zhí)行sql后將輸出結(jié)果映射至java對(duì)象中,輸出結(jié)果映射過程相當(dāng)于jdbc編程中對(duì)結(jié)果的解析處理過程。12.講下MyBatis和Hibernate的區(qū)別? MyBatis是JDBC的輕量級(jí)封裝,把Sql和java代碼獨(dú)立出來,性能相對(duì)比較高,寫SQL語句相對(duì)于比較靈活,并且容易調(diào)試,一般用在大型項(xiàng)目中.Hibernate是JDBC的重量級(jí)封裝,開發(fā)速度比較快,但是性能比較低,調(diào)試不方便,一般適合對(duì)進(jìn)度要求的比較高的中小型項(xiàng)目.13.mybatis中#{}和${}的區(qū)別是什么? ${}是Properties文件中的變量占位符,它可以用于標(biāo)簽屬性值和sql內(nèi)部,屬于靜態(tài)文本替換,比如${driver}會(huì)被靜態(tài)替換為com.mysql.jdbc.Driver。#{}是sql的參數(shù)占位符,Mybatis會(huì)將sql中的#{}替換為?號(hào),在sql執(zhí)行前會(huì)使用PreparedStatement的參數(shù)設(shè)置方法,按序給sql的?號(hào)占位符設(shè)置參數(shù)值,比如ps.setInt(0, parameterValue),#{item.name}的取值方式為使用反射從參數(shù)對(duì)象中獲取item對(duì)象的name屬性值,相當(dāng)于param.getItem().getName()。14.mybatis中XML映射文件中,除了常見的select|insert|updae|delete標(biāo)簽之外,還有哪些標(biāo)簽?、、、、,加上動(dòng)態(tài)sql的9個(gè)標(biāo)簽,trim|where|set|foreach|if|choose|when|otherwise|bind等,其中為sql片段標(biāo)簽,通過標(biāo)簽引入sql片段,為不支持自增的主鍵生成策略標(biāo)簽。15.MyBatis編程步驟是什么樣的? 創(chuàng)建SqlSessionFactory 通過SqlSessionFactory創(chuàng)建SqlSession 通過sqlsession執(zhí)行數(shù)據(jù)庫操作 調(diào)用session.commit()提交事務(wù) 調(diào)用session.close()關(guān)閉會(huì)話 16.JDBC編程有哪些不足之處,MyBatis是如何解決這些問題的? ① 數(shù)據(jù)庫鏈接創(chuàng)建、釋放頻繁造成系統(tǒng)資源浪費(fèi)從而影響系統(tǒng)性能,如果使用數(shù)據(jù)庫鏈接池可解決此問題。 解決:在SqlMapConfig.xml中配置數(shù)據(jù)鏈接池,使用連接池管理數(shù)據(jù)庫鏈接。②Sql語句寫在代碼中造成代碼不易維護(hù),實(shí)際應(yīng)用sql變化的可能較大,sql變動(dòng)需要改變java代碼。 解決:將Sql語句配置在XXXXmapper.xml文件中與java代碼分離。 ③向sql語句傳參數(shù)麻煩,因?yàn)閟ql語句的where條件不一定,可能多也可能少,占位符需要和參數(shù)一一對(duì)應(yīng)。 解決: Mybatis自動(dòng)將java對(duì)象映射至sql語句。 ④對(duì)結(jié)果集解析麻煩,sql變化導(dǎo)致解析代碼變化,且解析前需要遍歷,如果能將數(shù)據(jù)庫記錄封裝成pojo對(duì)象解析比較方便。解決:Mybatis自動(dòng)將sql執(zhí)行結(jié)果映射至java對(duì)象。17.使用MyBatis的mapper接口調(diào)用時(shí)有哪些要求? Mapper接口方法名和mapper.xml中定義的每個(gè)sql的id相同 Mapper接口方法的輸入?yún)?shù)類型和mapper.xml中定義的每個(gè)sql 的parameterType的類型相同 Mapper接口方法的輸出參數(shù)類型和mapper.xml中定義的每個(gè)sql的resultType的類型相同 Mapper.xml文件中的namespace即是mapper接口的類路徑。18.簡(jiǎn)單的說一下MyBatis的一級(jí)緩存和二級(jí)緩存? Mybatis首先去緩存中查詢結(jié)果集,如果沒有則查詢數(shù)據(jù)庫,如果有則從緩存取出返回結(jié)果集就不走數(shù)據(jù)庫。Mybatis內(nèi)部存儲(chǔ)緩存使用一個(gè)HashMap,key為hashCode+sqlId+Sql語句。value為從查詢出來映射生成的java對(duì)象 Mybatis的二級(jí)緩存即查詢緩存,它的作用域是一個(gè)mapper的namespace,即在同一個(gè)namespace中查詢sql可以從緩存中獲取數(shù)據(jù)。二級(jí)緩存是可以跨SqlSession的。 19.Mybatis是否支持延遲加載?如果支持,它的實(shí)現(xiàn)原理是什么? Mybatis僅支持association關(guān)聯(lián)對(duì)象和collection關(guān)聯(lián)集合對(duì)象的延遲加載,association指的就是一對(duì)一,collection指的就是一對(duì)多查詢。在Mybatis配置文件中,可以配置是否啟用延遲加載lazyLoadingEnabled=true|false。它的原理是,使用CGLIB創(chuàng)建目標(biāo)對(duì)象的代理對(duì)象,當(dāng)調(diào)用目標(biāo)方法時(shí),進(jìn)入攔截器方法,比如調(diào)用a.getB().getName(),攔截器invoke()方法發(fā)現(xiàn)a.getB()是null值,那么就會(huì)單獨(dú)發(fā)送事先保存好的查詢關(guān)聯(lián)B對(duì)象的sql,把B查詢上來,然后調(diào)用a.setB(b),于是a的對(duì)象b屬性就有值了,接著完成a.getB().getName()方法的調(diào)用。這就是延遲加載的基本原理。 20.Mybatis的Xml映射文件中,不同的Xml映射文件,id是否可以重復(fù)? 不同的Xml映射文件,如果配置了namespace,那么id可以重復(fù);如果沒有配置namespace,那么id不能重復(fù);畢竟namespace不是必須的,只是最佳實(shí)踐而已。 原因就是namespace+id是作為Map的key使用的,如果沒有namespace,就剩下id,那么,id重復(fù)會(huì)導(dǎo)致數(shù)據(jù)互相覆蓋。有了namespace,自然id就可以重復(fù),namespace不同,namespace+id自然也就不同。21.為什么說Mybatis是半自動(dòng)ORM映射工具?它與全自動(dòng)的區(qū)別在哪里? Hibernate屬于全自動(dòng)ORM映射工具,使用Hibernate查詢關(guān)聯(lián)對(duì)象或者關(guān)聯(lián)集合對(duì)象時(shí),可以根據(jù)對(duì)象關(guān)系模型直接獲取,所以它是全自動(dòng)的。而Mybatis在查詢關(guān)聯(lián)對(duì)象或關(guān)聯(lián)集合對(duì)象時(shí),需要手動(dòng)編寫sql來完成,所以,稱之為半自動(dòng)ORM映射工具。22.SSM優(yōu)缺點(diǎn)、使用場(chǎng)景? 1.Mybatis和hibernate不同,它不完全是一個(gè)ORM框架,因?yàn)镸yBatis需要程序員自己編寫Sql語句,不過mybatis可以通過XML或注解方式靈活配置要運(yùn)行的sql語句,并將java對(duì)象和sql語句映射生成最終執(zhí)行的sql,最后將sql執(zhí)行的結(jié)果再映射生成java對(duì)象。 2.Mybatis學(xué)習(xí)門檻低,簡(jiǎn)單易學(xué),程序員直接編寫原生態(tài)sql,可嚴(yán)格控制sql執(zhí)行性能,靈活度高,非常適合對(duì)關(guān)系數(shù)據(jù)模型要求不高的軟件開發(fā),例如互聯(lián)網(wǎng)軟件、企業(yè)運(yùn)營類軟件等,因?yàn)檫@類軟件需求變化頻繁,一但需求變化要求成果輸出迅速。但是靈活的前提是mybatis無法做到數(shù)據(jù)庫無關(guān)性,如果需要實(shí)現(xiàn)支持多種數(shù)據(jù)庫的軟件則需要自定義多套sql映射文件,工作量大。3.Hibernate對(duì)象/關(guān)系映射能力強(qiáng),數(shù)據(jù)庫無關(guān)性好,對(duì)于關(guān)系模型要求高的軟件(例如需求固定的定制化軟件)如果用hibernate開發(fā)可以節(jié)省很多代碼,提高效率。但是Hibernate的學(xué)習(xí)門檻高,要精通門檻更高,而且怎么設(shè)計(jì)O/R映射,在性能和對(duì)象模型之間如何權(quán)衡,以及怎樣用好Hibernate需要具有很強(qiáng)的經(jīng)驗(yàn)和能力才行。 4.總之,按照用戶的需求在有限的資源環(huán)境下只要能做出維護(hù)性、擴(kuò)展性良好的軟件架構(gòu)都是好架構(gòu),所以框架只有適合才是最好。23.SpringMvc里面攔截器是怎么實(shí)現(xiàn)的? 有兩種方式,一種是實(shí)現(xiàn)接口,另外一種是繼承適配器類,然后在SpringMvc的配置文件中配置攔截器即可: 24.Spring中AOP的應(yīng)用場(chǎng)景、Aop原理、好處? AOP--Aspect Oriented Programming面向切面編程;用來封裝橫切關(guān)注點(diǎn),具體可以在下面的場(chǎng)景中使用: Authentication 權(quán)限、Caching 緩存、Context passing 內(nèi)容傳遞、Error handling 錯(cuò)誤處理Lazy loading懶加載、Debugging調(diào)試、logging, tracing, profiling and monitoring 記錄跟蹤優(yōu)化 校準(zhǔn)、Performance optimization 性能優(yōu)化、Persistence 持久化、Resource pooling 資源池、Synchronization 同步、Transactions 事務(wù) 原理:AOP是面向切面編程,是通過動(dòng)態(tài)代理的方式為程序添加統(tǒng)一功能,集中解決一些公共問題。優(yōu)點(diǎn): 1.各個(gè)步驟之間的良好隔離性耦合性大大降低 2.源代碼無關(guān)性,再擴(kuò)展功能的同時(shí)不對(duì)源碼進(jìn)行修改操作。 JAVA實(shí)習(xí)生問題: 1.我班只招三人。2.實(shí)習(xí)從現(xiàn)在開始,至于結(jié)束,暫時(shí)沒有時(shí)間限制,因?yàn)楣卷?xiàng)目較多,缺乏人手,項(xiàng)目周期長。聽他們說他們現(xiàn)在接了一個(gè)安徽省的云平臺(tái)項(xiàng)目,這個(gè)就夠他們忙的了。如果最后你們能夠成長起來,并且愿意留下來,他們也很高興,也就相當(dāng)于培養(yǎng)自己的員工。 3.工作內(nèi)容:項(xiàng)目組帶著做項(xiàng)目。相當(dāng)于一邊學(xué)習(xí)一邊動(dòng)手做。所以興趣很重要,如果很有興趣,具有一定的分析問題解決問題的能力,遇到問題,則是自己積極想辦法解決,而且覺得很有成就感,在有興趣的前提下,跟著項(xiàng)目組做項(xiàng)目也是學(xué)的最快的;但是如果興趣并不是很大,那么就變成了壓力、痛苦和無聊。 4.此次公司招實(shí)習(xí)生,對(duì)基礎(chǔ)沒什么要求(只要學(xué)過java就行),重要的是興趣。如果動(dòng)手能力、自學(xué)能力較強(qiáng),具有較強(qiáng)的分析問題、解決問題的能力,即使基礎(chǔ)不是很好,也應(yīng)該問題不大。有興趣,遇到問題就不會(huì)覺得難,而是自己積極的想辦法去解決。 5.對(duì)于女生來說,需要考慮的更多一些,比如安全問題,畢竟是在校外實(shí)習(xí)。這些問題你們自己要考慮到,也都是要讓你們自己負(fù)責(zé)的。要慎重,自己考慮清楚。 6.公司招實(shí)習(xí)生的目的是幫著項(xiàng)目組做項(xiàng)目。不是很想干的,最好別去。 7.工作有兩個(gè)方向,軟件開發(fā)or系統(tǒng)集成,方向自己選,看你們對(duì)哪一塊感興趣。如果基礎(chǔ)好一點(diǎn),項(xiàng)目組就帶著你們做;如果基礎(chǔ)薄弱,不光帶著做,還會(huì)有培訓(xùn)。實(shí)際上帶著做項(xiàng)目,是學(xué)的最快的,但是前提是有興趣。至于具體做什么,要看是什么項(xiàng)目,是項(xiàng)目中的哪一部分。 1、引用CSS樣式有哪兩種方式? Link,@import2、js怎么控制兩個(gè)文本框,當(dāng)選中的時(shí)候邊框變空,沒選中的變會(huì)原來的顏色。onFocus=“document.getElementById('text1').style.backgroundColor='#eee'” onblur=“document.getElementById('text1').style.backgroundColor='#fff'” 3、查詢數(shù)據(jù)庫表顯示在頁面需要新建多少個(gè)class文件和xml文件? 4、spring有多少種注入方式? 注入方法1:構(gòu)造方法方式 2:屬性注入 3:靜態(tài)工廠方法參數(shù)注入 4: 接口注入第二篇:Eclipse android開發(fā)環(huán)境搭建總結(jié)
第三篇:java 問題匯總(總結(jié),重點(diǎn))
第四篇:JAVA實(shí)習(xí)生問題
第五篇:Java面試問題