1、spring AOP配置多個 pointcut報錯!
恩知道了 在expression里不支持這么寫,應該用and來代替&&就搞定了。
2、怎麼讓Sprng SpringMVC MyBatis搭建一個 cms
。。。。。。。。。
好比問了一個怎麼讓Java自己寫一個CMS程序呢。。。。
正確的說法:使用Java所開發的Web程序在Tomcat上運行。
也就是
Tomcat上搭建了一個
網站,網站類型是CMS,使用的技術框架是Spring
SpringMVC
Mybatis
Spring
Springmvc
Mybatis只是框架,怎麼寫成CMS,還要你自己去在框架上堆代碼。
3、spring 引用服務 怎麼配置
Spring配置人們經常會在一台以上的主機上配置一種Web應用程序。例如,在生產中,一個網站可能只有一個實例。除了此實例外,開發人員可以在用於開發的機器上配置其他的(開發)實例。也可以在公司(機構)內部的本地開發伺服器上維護其他應用程序裝置,這將讓您受益匪淺。該實例的目的是使Web設計者可以獲得有質量保證的材料,並為需要為應用程序提供文件資料的人提供准入。大家都知道,即使是最簡單的場景,也需要安裝、配置和維護三個實例。而對於位於不同地理位置的團隊來說,要從事這樣的項目便更加困難。對於任何不是特別簡單的Web應用程序項目,都需要多名開發人員來安裝項目裝置和本地設置以及運行單元測試的裝置等。很多組織都將自己開發的產品作為Web應用程序。我們可以在很多產品中發現這種情況,例如電子商務系統、內容管理系統(CMS),以及博客發布平台等。這類產品可在多個伺服器中進行部署。對於成功的多用途Web應用程序來說,他們的開發人員必須要保證他們的應用程序便於安裝,並且能夠與其他Web應用程序完美集成。經過上述討論之後,我們應該明了,作為本文主題的應用程序配置是通用Web應用程序項目開發人員所需要解決的重要問題之一。諸如CVS或Subversion之類的版本控制系統是開發組織使用的一種標准工具。這種工具代表了一些組織的中心源代碼版本庫,它們被用於保持源代碼的有序。用戶可以跟蹤應用程序源代碼的變化,顯示不同版本的區別,並可以確定項目分支。而且,它們使得在應用程序部署中進行部分更新成為可能。很明顯,版本控制系統軟體是跟蹤源代碼所必需的,它對於解決應用程序配置問題有非常大的幫助。在本文中,我們將不會把重點放在版本控制系統上,因為這方面已經有很多相關的材料了。在此,我們將關注版本控制問題中的一個小話題:如何使Web應用程序的配置更加便捷(尤其是使用SpringMVC框架編寫的Web應用程序)。問題是:我們在此討論的是一種什麼樣的配置?任何Web應用程序都需要一些資源,這些資源通常都是其所運行的伺服器所特有的,例如資料庫URL、發送電子郵件的SMTP伺服器,以及包含專用軟體文件的文件夾等。這樣的設置應該集中,從而使應用程序配置更加簡單。但是,這只是這個問題最簡單的一種版本。有時候,在應用程序開發中需要更加復雜的配置。這意味著,必須將各次部署中的不同Bean連接起來,而這會使問題更加復雜。這些應用程序配置問題的解決方案有諸多優勢,包括:簡化應用程序的安裝和配置過程,使源代碼版本控制更加簡便,減少源代碼版本庫中的沖突現象。下面,我們將通過示例詳細討論這個話題。問題。我們首先來演示一下上文所提到的最簡單的版本。在這一場景中,我們希望在應用程序部署中改變的是簡單的配置參數,例如鏈接、密碼等。如果您曾經使用SpringMVC框架開發過Web應用程序,那麼您應該知道這里將用到的兩個配置文件:/WEB-INF/applicationContext.xml,它讓您可以配置Bean,或者顯示應用程序上下文。通過這個文件,您可以定義自己的業務邏輯Bean、資源以及其他可以與Web埠相關聯的所有Bean。/WEB-INF/[servlet-name]-servlet.xml,它被用於配置Web層、視圖解析器、控制器、校驗器以及其他所有MVC框架中必需的Bean。[servlet-name]指的是在web.xml部署描述符中定義的Springdispatcherservlet的名稱。那麼問題在哪兒呢?問題就出在applicationContext.xml中將包括一些特定於主機的Bean。本文將定義。其中,最明顯的一個示例就是包含了JDBC連接信息的bean,但是任何一種稍微復雜些的應用程序都有十幾個類似的Bean。看一下下面的示例:<beanclass="org.springframework.jdbc.datasource.DriverManagerDataSource"><property><value>org.postgresql.Driver</value></property><property></property><property><value>postgres</value></property><property><value></value></property></bean>這個解決方案的問題在於對applicationContext.xml文件的維護。對於初學者來說,設想一下,項目放在源代碼版本控制系統中,例如CVS。下面,假設您希望在網站中添加新的功能,那麼就需要在應用程序上下文定義中添加額外的Bean定義。問題是如何在生產伺服器上體現這些改變。通常情況下,應用程序的本地實例不會與活動站點使用同樣的資料庫,因此applicationContext.xml文件將包括讓您能夠訪問本地資料庫的設置。當您想提交在源代碼版本庫中的改變時,就需要注意這些特定於主機屬性的同步性。版本庫中的文件最終可能使用本地設置中的配置。如果想在生產伺服器上更新配置,就必須手動同步這些屬性的值。這是非常枯燥的任務,而且還非常容易出錯。對於應用程序的每個實例來說,這個問題更加重要。假如有三位開發人員正在使用代碼段基址,而且他們使用的是本地的資料庫。當您提交更改的時候,他們每個人在本地伺服器上更新源代碼的時候都必須非常謹慎。他們會手動同步這些更改,然後提交他們的工作。這樣一來,版本控制系統對於這些配置文件來說已經毫無用處。如果曾經使用過SpringMVC,那麼您應該知道applicationContext.xml是應用程序中的關鍵組件,因為是它將所有的東西粘合在一起。所以,我們需要一種機制來幫助使應用程序中各項保持有序,這點非常重要。正如前面所提到的,這是您可能遇到的較簡單的配置問題。更難的問題出現在當需要在不同伺服器中進行不同的Bean連接的時候。這類問題常會出現在日常軟體開發任務中。例如,假如您的產品有一個客戶身份驗證模塊,可以對來自關系資料庫或LDAP伺服器中的用戶進行身份驗證。自然,這一身份驗證模塊可以使用抽象了特定版本庫的Bean進行配置。如果您想改變不同應用程序部署中驗證用戶的方式,就需要在applicationContext.xml文件中進行不同的Bean連接。這種配置問題常見於在部署中有可配置特性的所有應用程序。在下文中,我們將討論這兩種配置問題。首先我們會關注同步的Bean屬性問題及其解決方案,接下來,我們會討論更加復雜的同步Bean連接問題。解決方案同步Bean屬性這個問題的一種可行的解決方案是將所有特定於主機的參數都放到普通的Java屬性文件中,使用Spring的PropertyPlaceHolderConfigurer類,將這些參數寫入Bean屬性中。使用這一解決方案,我們可以生成如下的屬性文件(/WEB-INF/jdbc.properties):jdbc.driver=org.postgresql.Driverjdbc.url=jdbc:postgresql://localhost/testjdbc.user=postgresjdbc.password=我們的Bean配置如下:<beanclass="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"><property><value>/WEB-INF/jdbc.properties</value></property></bean><beanclass="org.springframework.jdbc.datasource.DriverManagerDataSource"><property><value>${jdbc.driver}</value></property><property><value>${jdbc.url}</value></property><property><value>${jdbc.user}</value></property><property><value>${jdbc.password}</value></property></bean>如上所述,我們定義了一個PropertyPlaceholderConfigurer類的實例,並將其位置屬性設置為我們的屬性文件。該類被實現為Bean工廠的後處理器,並將使用定義在文件中的屬性來代替所有的佔位符(${}value)。利用這種技術,我們可以從applicationContext.xml中移除所有特定於主機的配置屬性。通過這種方式,我們可以自由地為該文件添加新的Bean,而不必擔心特定於主機屬性的同步性。這樣可以簡化生產部署和維護。同步性連接上面的技術解決了第一個問題,可是如果您計劃修改不同應用程序部署之間的Bean連接,這一技術便不很適合。針對這一問題的一個解決方案便是額外創建一個名為applicationContext-[hostname].xml的XML定義文件。其中[hostname]是部署應用程序的主機的名稱。例如,在本地的機器上,這個文件通常名為applicationContext-localhost.xml,而在部署時,它可能更名為applicationContext-somehost.com.xml。可以猜測,這一文件必須包括特定於某一主機的所有配置Bean。在本文中,我們將假設dataSourcebean定義將位於這類文件中,而不是通用的applicationContext.xml定義。當然,這種機制與前者並非沖突,但是為了更加簡單明了,我們將只關注這種方法。既然我們已經有了特定的配置,下面我們就來討論一下如何將其整合到整個SpringMVC配置概念中。要達到這一目的,可以有許多方法,我們將詳細地一一說明。但首先,我們應該注意到,由於有些Bean可能位於獨立的配置文件中,因此在applicationContext.xml中,所有對它們的局部引用都必須更換成全局名稱。例如,如下引用:<property><reflocal="someBean"/></property>應更改為:<property><refbean="someBean"/></property>在這之後,我們有很多可以添加額外的資源以用於配置的方式。其中最明顯的就是使用<import>標簽將這一額外資源包含在applicationContext.xml配置文件中。使用時,要將該標簽放在applicationContext.xml文件開頭。例如:<importresource="applicationContext-somehost.com.xml"/>現在,在獨立的XML定義文件和普通的應用程序上下文定義文件中的所有通用Bean定義都有了特定於主機的連接。由於大多數的Bean都不是特定於主機的,因此我們可以像處理Web應用程序中的其他資源一樣自由地處理applicationContext.xml文件,並可以通過合適的版本控制系統與其進行同步。但是,上述方法也有一定的弊端。如果您想保留不同XML文件的不同配置,就仍然必須擔心applicationContext.xml的同步性,因為資源的名稱必須根據不同伺服器進行更改。雖然與原有的解決方案相比有了很大提高,只需更改文件名,但是這還是需要開發人員的手動協助。由於與applicationContext.xml相比,主機配置不需如此頻繁地進行更改,因此下一步便是將主機配置移動到web.xml文件中(如果可能的話)。幸運的是,我們有一個可用的解決方案。看一下下面關於web.xml配置的片斷:<listener><listener-class>org.springframework.web.context.ContextLoaderListener</listener-class></listener><context-param><param-name>contextConfigLocation</param-name><param-value>/WEB-INF/applicationContext.xml/WEB-INF/applicationContext-somehost.com.xml</param-value></context-param>正如您所看到的,除了web.xml文件中常有的ContextLoaderListener之外,我們還添加了contextConfigLocation上下文參數配置。這一參數用於指示框架查找這些配置文件的位置。如果這一參數被省略,則Spring就只能到applicationContext.xml中查找。這里我們也定義了特定於主機的配置文件來使用。利用這種方法,我們將所有特定於主機的配置從applicationContext.xml文件中移除,這樣便減輕了其在不同應用程序部署中的同步性。如果這種方法成為您的新習慣,您還可以使其更加靈活。通過遵守下列指令,也可以將特定於主機的配置從web.xml文件中移除。為此,需要創建特定於我們的應用程序上下文的類:packagenet.nighttale.spring.util;importjava.net.InetAddress;importorg.springframework.web.context.support.XmlWebApplicationContext;ext{protectedString[]getDefaultConfigLocations(){Stringhostname="localhost";try{hostname=InetAddress.getLocalHost().getHostName();}catch(Exceptione){}StringperHostConfiguration=DEFAULT_CONFIG_LOCATION_PREFIX+"applicationContext-"+hostname+DEFAULT_CONFIG_LOCATION_SUFFIXlogger.debug(":"+perHostConfiguration);if(getNamespace()!=null){returnnewString[]{DEFAULT_CONFIG_LOCATION_PREFIX+getNamespace()+DEFAULT_CONFIG_LOCATION_SUFFIX,perHostConfiguration};}else{returnnewString[]{DEFAULT_CONFIG_LOCATION,perHostConfiguration};}}}這個類拓展了Spring中常被作為默認值使用的XmlWebApplicationContext。XmlWebApplicationContext類將Web應用程序的配置從XML定義文件中復制過來。默認情況下,它可以配置來自applicationContext.xml和[servlet-name]-servlet.xml文件中的應用程序。這個類執行的惟一一項額外任務便是獲取它所在的主機名稱,並將applicationContext-[hostname].xml文件添加到配置文件列表中。為了使用這個類,我們需要對其進行編譯,將其包含在類途徑中,並指示Spring框架使用它。前兩步非常簡單,我們就不在此贅述。我們可以指示Sping通過contextClass上下文參數來使用它。除了web.xml文件中的原有配置,我們還可以添加下列內容:<context-param><param-name>contextClass</param-name><param-value>net.nighttale.spring.util.</param-value></context-param>如果我們使用這一配置片斷,將會有三個文件被用於初始化這個框架:[servlet-name]-servlet.xml、applicationContext-[hostname].xml以及applicationContext.xml。正如您所看到的,applicationContext.xml和web.xml文件已經完全擺脫了任何特定的配置細節,而且您也不必擔心會在更新應用程序時破壞配置。但是,這種方法有一個不足之處。因為,不論是否會使用,都需要在應用程序部署中有第三個配置文件。在這種情況下,便不需要特定於主機的配置。例如:<?xmlversion="1.0"encoding="UTF-8"?><!DOCTYPEbeansPUBLIC"-//SPRING//DTDBEAN//EN""spring-beans.dtd"><beans></beans>最後,需要知道應用程序上下文類需要查找的特定主機名。檢查主機名稱的最簡單的方法是在機器上運行下列代碼:System.out.println(InetAddress.getLocalHost().getHostName())可以將其作為Java代碼執行,也可在喜歡使用的腳本語言(如BeanShell或Groovy)中作為一個具有Java風格語法的腳本執行。在獲取了主機的名稱之後,應該創建一個默認的/WEB-INF/applicationContext-[hostname].xml空文件夾(如我們上面所定義的),然後便可以開始了。
4、本人女產品經理,上個月被勸轉崗,女性不適合做產品經理嗎?
一、產品需求分析
因為工作領域關系,經常有朋友找我咨詢一些軟體項目的問題,比如:
開發一個教育類App多少錢?
做一個網店多少錢?
我想做一套在地圖上實時顯示數據並且分析的可視化平台,開發周期一般多久?
我需要一套采購物流系統,開發周期一般多久?
二、需求設計文檔
平時習慣在談項目初期,先做業務和構架需求分析,但還是時不時一個方面沒考慮到,就入了坑。曾經有一個做產品經理的朋友找我合作一個項目:客戶要做一個電商系統,項目第一版的要求很簡單,只要能運行正常購物流程即可:
電腦和手機可以訪問;
用戶可以郵件注冊,也能微信注冊;
有產品列表展示,購物車,訂單,用戶掃二維碼支付即可;
用戶界面自己決定,以後可以換模板;
管理員後台能管理產品,批量上傳訂單,上傳上傳圖片,查看客戶訂單。
我自己手頭有一套完整的基於Spring的CMS開發框架,包括前端API模塊、後端管理模塊、用戶許可權模塊、數據持久化模塊等等,所以上面這些按估算很容易搞定。第3點里的產品,購物車、訂單分成三個小模塊,做個二維碼支付也不是大問題。而且第一版只要基本功能,不用考慮任何的分布式,大流量,並發搶購等今後做大了要考慮的問題,無需過度設計。
我這個朋友也是個資深程序猿出身,所以我也很放心他作為客戶傳話筒,所有需求遵循KISS原則,但保留基本的模塊擴展性。
三、分析細節標准
我們公司有個客服系統,客戶在使用產品遇到問題時,會郵件或者電話給客服,客服錄入系統後會分配給相應研發團隊。這是一個常見的一問一答流程,我們的反饋會通過客服發給客戶。
需求也業務拆分盡可能詳細,考慮周全,最好能覆蓋今後絕大部分的測試用例。
比如需要開發一個用戶注冊登錄的功能,從某個男性產品經理嘴裡說出來可能就一句話:給我開發一個用戶系統,能注冊,能登錄,三天夠不夠?
從女性角度,她們習慣把一件簡單的事情變的復雜化——如果這里的簡單並沒有你想像的那麼簡單呢?
如果你足夠細心,就需要和客戶做仔細溝通後達成共識,最終交付給研發團隊的應該是如下一份需求Kickoff列表(只是舉例,考慮並非100%全面):
用email注冊還是用戶名注冊?
如果是用戶名,最短幾位,最長幾位,允許特殊字元嗎,密碼最短幾位,最長幾位?
如果email注冊,是密碼一起填寫注冊,還是有驗證步驟?
點擊注冊前,是否展示用戶協議。不勾選顯示什麼錯誤?
如果有驗證步驟,需要手機驗證嗎?如果要,要對接哪個API,驗證碼長短,過期時間?
手機驗證碼發送時間間隔,以及發送頻率限制;
如果只需郵箱驗證,發送給用戶的激活鏈接有效期多久,過期了怎麼辦?
驗證這個業務要不要持久化?
發送激活郵件的模板,HTML還是txt,誰來設計?
激活鏈接過期後,顯示什麼錯誤,然後跳轉到驗證郵件重發界面?
激活鏈接激活後,顯示什麼信息,自動跳轉到哪個界面,比如設置密碼界面?
密碼設置允許特殊字元嗎,最短幾位,最長幾位?
密碼入庫前採用何種加密演算法,以哪個屬性作為salt?
用戶密碼設置成功後,產品經理適合女孩子嘛跳轉哪個界面,顯示什麼消息?
用戶後期允不允許改用戶名或注冊郵箱嗎?
用戶後期修改密碼是否需要郵件或手機驗證?
允不允許單用戶多地點登錄,如果不允許,顯示什麼錯誤自動登出?
支不支持單點登錄SSO?
要不要開發移動端App,需不需要提供注冊和登錄API?
API需不需要支持OAuth2,或是Token?
登錄構架是單體還是需要考慮分布式Session?
用戶許可權系統設計,多Role或是單Role設計?
鑒權系統設計是無狀態還是有狀態?
用戶自己或者管理員關於許可權系統的操作流程是什麼?
有沒有第三方SNS介面注冊接入,如果接入,需不需要同步頭像,需不需要同時必須新建本地賬號。
第三方SNS接入的流程,回調介面,以及界面設計;
相關前端和App界面設計圖,錯誤對話框UI;
需求文檔越詳細,後期開發與測試遇到的誤解就越少,試錯成本也越低。
該文檔必須保持在線實時更新,有任何變更,研發團隊必須第一時間得知。不要通過簡訊或者Email更改需求,這會使團隊和產品經理陷入無盡的扯皮煉獄之中。
相關推薦:
產品經理適合女孩子嘛
5、CMS是如何一步步開發出來的
要自主開發一套CMS,需要投入大量的人力物力財力。現在市面上已經有很多成熟的,開放性的CMS,一般只有有個性化開發需求的項目,才會選擇自主開發,大多數的網站中,一般都是選擇一套較為適合的開源程序進行二次開發使用。
CMS開發大致有如下4個步驟:
1. 創建表結構 比如創建頻道表、欄目表、文章表、作者表、文章來源表等等;
2. 通過程序語言對步驟1的實體做管理(比如增刪改查等操作);
3. 選擇一種模板工具(如用java開發,可選用velocity),製作包括首頁、頻道頁、欄目頁、內容頁的模板;
4. 將首頁、頻道頁、欄目頁、內容頁靜態化,保存在web伺服器的相應目錄即可。
綜合SSH三大框架,結合javascript,Jquery,Springmvc,svn,Junit,maven,freeMarker等大量的知識點來實現一個完整的網站。
6、誰能推薦一個JAVA版本的CMS系統
一個JAVA版本的CMS系統:
師說CMS是用Java開發的內容管理系統,目前是開源中國比較活躍的開源項目之一。
師說CMS採用目前最流行的Maven項目架構,設計簡單易懂,是一個輕量級的Java CMS。
Spring MVC為表現層,Spring為業務層,MyBatis為數據層。項目大量使用註解,代碼注釋清晰,文檔齊全,是學習和二次開發的首選。
7、walrus cms支持oracle嗎
基於Walrus CMS 修改,更簡單,更高效,使用技術:SpringMVC,Spring Security. Hibernate jQuery及其擴展插件 ,Tiles2和FreeMark。偽靜態,.html請求,基於.html頁面與資料庫緩存Ehcache,頂住高訪問量,頁面緩存可設置啟用關閉。
8、怎麼讓Sprng SpringMVC MyBatis搭建一個 CMS
。。。。。。。。。
好比問了一個怎麼讓Java自己寫一個CMS程序呢。。。。
正確的說法:內使用Java所開發的Web程序在Tomcat上運行容。
也就是 Tomcat上搭建了一個 網站,網站類型是CMS,使用的技術框架是Spring SpringMVC Mybatis
Spring Springmvc Mybatis只是框架,怎麼寫成CMS,還要你自己去在框架上堆代碼。