工具:IDEA
一個新電腦,打算配置個SSM框架。本來 打算自己下Jar包自己配,自力更生嘛!
0x01 --自己配環境
好,既然是Spring MVC+Spring+MyBatis .那麼就從Sping開始配吧
打開Spring官網:https://spring.io/
嗯……最新的官網根本沒有設下載地址……
九牛二虎百度後在spring的github裏找到了。然後下載。下載下來
60個JAR包。。。百度了下,然後縮減下來 20個。
然後在IDEA導入
試試做個項目:
很簡單的一個AOP實現。
Hello1 和hello2的就是各自輸出一句話。AOP實現前後輸出當前時間。
結果:
這裏可以看到代碼和錯誤。
沒錯,這個錯誤:
Exception in thread "main" org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.aop.config.internalAutoProxyCreator': Initialization of bean failed; nested exception is java.lang.NoClassDefFoundError:
org/aspectj/lang/annotation/Around
正是傳說中的找不到JAR包。百度了下。是aspectjweaver-1.6.12.jar和aopxxx.jar
加上後,報了新錯
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory
繼續百度。又是缺少包:commons-logging-1.2.jar
好,繼續百度,下載加上,纔好
其中:
下載JAR,解決包的依賴。
百度說是spring 分解了他的JAR。如果實現AOP,將要下載新的JAR包
出現一大堆錯誤。一開始還以爲是代碼錯。
修改代碼,最後才發現是缺少jar包。
解決了很久很久。
然後現在只配好了Spring。
0x02 --Maven配環境
OK,我們來用maven。
IDEA,New Project
選擇maven
選中Create from archetype 這裏面都是一些模板
我們選webapp模板
- maven-archetype-webapp
然後NEXT
填好,隨便填就可以,然後next
然後選自己的目錄位置 和項目名 然後直接 next
項目自己會下載一堆東西。下載完後。 點擊File- Project Structure -Modules
在目錄加上這些,補全到我現在這樣:
在main文件夾下放個java文件夾,然後右鍵 Sources
在根目錄新建test,然後新建個java 右鍵 test Sources 然後新建個resources 右鍵test Resources
直接OK退出,然後找到我們關鍵的:
pom.xml是 maven關鍵文件,裏面增加會通知maven下載環境
在裏面找到
<dependencies>
</dependencies>
刪除,然後增加:
<properties>
<!-- spring版本號 -->
<spring.version>4.0.2.RELEASE</spring.version>
<!-- mybatis版本號 -->
<mybatis.version>3.2.6</mybatis.version>
<!-- log4j日誌文件管理包版本 -->
<slf4j.version>1.7.7</slf4j.version>
<log4j.version>1.2.17</log4j.version>
</properties>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<!-- 表示開發的時候引入,發佈的時候不會加載此包 -->
<scope>test</scope>
</dependency>
<!-- spring核心包 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-oxm</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aop</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>${spring.version}</version>
</dependency>
<!-- mybatis核心包 -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>${mybatis.version}</version>
</dependency>
<!-- mybatis/spring包 -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>1.2.2</version>
</dependency>
<!-- 導入java ee jar 包 -->
<dependency>
<groupId>javax</groupId>
<artifactId>javaee-api</artifactId>
<version>7.0</version>
</dependency>
<!-- 導入Mysql數據庫鏈接jar包 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.30</version>
</dependency>
<!-- 導入dbcp的jar包,用來在applicationContext.xml中配置數據庫 -->
<dependency>
<groupId>commons-dbcp</groupId>
<artifactId>commons-dbcp</artifactId>
<version>1.2.2</version>
</dependency>
<!-- JSTL標籤類 -->
<dependency>
<groupId>jstl</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
<!-- 日誌文件管理包 -->
<!-- log start -->
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>${log4j.version}</version>
</dependency>
<!-- 格式化對象,方便輸出日誌 -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.1.41</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>${slf4j.version}</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>${slf4j.version}</version>
</dependency>
<!-- log end -->
<!-- 映入JSON -->
<dependency>
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-mapper-asl</artifactId>
<version>1.9.13</version>
</dependency>
<!-- 上傳組件包 -->
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.3.1</version>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.4</version>
</dependency>
<dependency>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
<version>1.9</version>
</dependency>
<!-- 補充包
-->
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjrt</artifactId>
<version>1.8.0</version>
</dependency>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
<version>1.8.0</version>
</dependency>
</dependencies>
每行語句都寫了作用了。
最後的補充包是Spring的AOP
然後IDEA自己就會瘋狂下載啦
等一會兒,就好了。來測試吧!
直接COPY代碼
記住bean.xml放在resources文件夾,然後在代碼裏以
ApplicationContext ctx = new ClassPathXmlApplicationContext("bean.xml");
HelloWorld1 helloWorld1=ctx.getBean("Hello1",HelloWorld1.class);
helloWorld1.doPrint();
Logger logger = Logger.getLogger(UserAxeTest. class );
logger.info( " debug " );
形式加載
而log4j,則根本不用寫加載項了,maven給你自己配好了
直接完美執行::
OK 區別體現出來了吧,直接一趟操作,完美解決。