دعنا نتحدث بإيجاز عن مشروع Maven Building SSM (باستخدام قاعدة البيانات Oracle أكثر إزعاجًا قليلاً من MySQL ، لذلك دعونا نتحدث عنه هنا)
عند إنشاء مشاريع الويب Maven ، غالبًا ما يكون المجلدان: Main/Java و Main/Test مفقودًا.
حل:
①: انقر بزر الماوس الأيمن على المشروع وحدد الخصائص ، ثم انقر فوق مسار إنشاء Java ، ضمن المكتبات ، وتحرير مكتبة نظام JRE ، وحدد JRE الافتراضي في مساحة العمل. (يوصى بهذا)
②: إنشاء دليل يدويًا. يستخدم Switch View عرض Navigator ويقوم مباشرة بإنشاء دليل Java في الدليل SRC/Main.
هيكل دليل المشروع:
ملفات التكوين المهمة:
ملف تكوين نموذج الكائن: pom.xml
ملف تكوين الربيع: ApplicationContext.xml
ملف تكوين MVC Spring: springmvc.xml
ملف تكوين قاعدة البيانات: jdbc.properties
ملف تكوين السجل: log4j.properties
ملف تكوين MyBatis: mybatis-config.xml
ملف تكوين برنامج الشبكة: web.xml
أولا تكوين pom.xml
يصف pom.xml أساسًا إحداثيات Maven للمشروع ، وتبعيات ، وتقدم حزم JAR تلقائيًا.
<project xmlns = "http://maven.apache.org/pom/4.0.0" http://maven.apache.org/maven-v4_0_0.xsd "> <Dodeversion> 4.0.0 </daseDversion> <roupiD> com.krry </rougiD> <Url> http://maven.apache.org </url> <تبعية> <!-تقديم JUNIT-> <REPERENCED> <VERENTID> JUNIT </rougeid> <roughid> javax.servlet </rougiD> <StifactId> servlet-api </stifactid> <الإصدار> 3.0-alpha-1 </version> <scope> متوفر </scope> </sependency> <!-إدخال حزمة JSTL-> <sependency> </groupid> <scope> المقدمة </scope> </rependency> <!-إدخال تبعية تجميع JSP-> <reperency> <roupiD> javax.servlet.jsp </rougeid> <StifactId> JSP-api </stifactid> <splement> 2.2 </apples> </scope> <rougiD> log4j </rougiD> <StifactId> log4j </shintifactid> <sophy> 1.2.17 </version> </dependency> <!-Springmvc mybatis-> <!-Spring and SpringMVC ذات الصلة repring-contex <sophy> 4.2.1.Release </version> </sependency> <redence> <roupiD> org.springframework </rougeid> <StifactId> spring-jdbc </artifactId> <splement> 4.2.1.Release </version> <StifactId> Spring-Webmvc </stifactid> <soph> 4.2.1.Release </version> </dependency> <!-يتطلب SpringMVC حزمة تحويل JSON Jackson-> <redence> <roupiD> com.fasterxml.jackson.core </groupid> <Rependency> <roupency> com.fasterxml.jackson.core </rougiD> <artifactid> annotations jackson </shintifactid> <الإصدار> 2.5.4 </version> </respency> <redency> </artiD> com.fasterxml.jackson.core </groupid> </reperency> <!-JSR303 التحقق من الخلفية من صحة الاكتئاب-> <Rependency> <roupiD> org.hibernate </groupId> <StifactId> hibernate-validator </attifactid> <sored> <StifactId> commons-io </shintifactid> <الإصدار> 2.4 </version> </sependency> <reperence> <roupiD> commons-filepload </rougeid> <StifactId> commons-filepame </stifactid> <splement> 1.3.1 </version> <sependency> <StifactId> commons-lang3 </artifactId> <الإصدار> 3.3.2 </version> </repreadency> <!-برامج الترميز المتعلقة بخوارزميات التشفير-> <redence> <roupiD> commons-codec </rougeid> <StifactId> comons-codec </seftifactid> -> <!-ORACLE DATABASE DRIVER-> <REPERENCY> <GORELID> COM.ORACLE </GROUPID> <STIFACTID> OJDBC6 </STIFACTID> <الإصدار> 12.1.0.2.0 </version> </dependency> <!-MySQL Database Driver (لم يتم استخدامه هنا ، يتم استخدام سائق oracle أعلاه) <StifactId> mysql-connector-java </stifactid> <الإصدار> 5.0.8 </version> <scope> وقت التشغيل </scope> </sependency>-> <!-Proxool Connection Pool-> <sperency> <roupencid> com.cloudhopper.proxool </rougeid> </reperency> <reperency> <roupiD> com.cloudhopper.proxool </rougiD> <StifactId> proxool-cglib </shintifactid> <splection> 0.9.1 </version> </rependency> <!- <StifactId> mybatis </shintifactid> <sople> 3.3.1 </version> </sependency> <reperency> <roupiD> org.mybatis </rougeid> <sritifactid> mybatis-spring </stifactid> <sored> 1.2.4 </version> <! <roughid> com.github.pageHelper </rougiD> <StifactId> pagehelper </shintifactid> <الإصدار> 4.2.1 </version> </sependency> </repreadencies> <build> <plugins> <suction> </////chargin> </ispecturation> </soplizin> <cludin> <trifactId> maven-war-plugin </stifactid> <الإصدار> 2.4 </version>
فيما يلي سؤال حول مشروع Maven باستخدام pom.xml لاستيراد حزمة برنامج تشغيل Oracle:
نظرًا لقضايا ترخيص Oracle ، لا يوفر Maven برنامج تشغيل Oracle JDBC. من أجل تطبيق برنامج Oracle JDBC في مشاريع Maven ، يجب إضافته يدويًا إلى المستودع المحلي.
إذا تم تثبيت قاعدة بيانات Oracle بالفعل على الكمبيوتر ، فهناك برنامج تشغيل قاعدة بيانات ضمن مسار التثبيت ويمكن استخدامه مباشرة. d: /oracle/oraclexe/app/oracle/product/10.2.0/server/jdbc/lib
يمكنك أيضًا تنزيل برنامج تشغيل قاعدة بيانات Oracle مباشرة من موقع Oracle الرسمي واستخدام عبارات SQL للاستعلام عن إصدار برنامج DATABASE: حدد * من V $ مثيل
ثم قم بتأكيد تنزيل الإصدار: http://www.oracle.com/technetwork/database/features
افتح واجهة سطر الأوامر لنظام التشغيل Windows ، وأدخل دليل حزمة برنامج التشغيل OJDBC6 ، ثم قم بتشغيله:
MVN تثبيت: File -File -DgroupId = com.oracle -dartifactid = ojdbc6 -dversion = 12.1.0.2.0 -dpackaging = jar -dfile = ojdbc6.jar
إذا تم عرض "النجاح" بنجاح ، فسيتم استيراد مستودع Maven المحلي تلقائيًا.
ثم يمكنك إضافة التبعية إلى مشروع Maven ، وكل إحداثي يتوافق مع عناصر الأمر أعلاه ، على النحو التالي:
<Rependency> <roupeD> com.oracle </rougiD> <StifactId> ojdbc6 </shintifactid> <soph> 12.1.0.2.0 </version> </sependency>
ملف تكوين الربيع: ApplicationContext.xml
<؟ xmlns: aop = "http://www.springframework.org/schema/aop" xmlns: p = "http://www.springframework.org/schema/p" http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd http://www.springfframework.org/schema/ http://www.springframework.org/schema/context/spring-context-3.0.xsd <!-مسح حزمة التكوين-> <السياق: مكون المسح القاعدة = "com.krry"> < /سياق: مكون-سكان> <!-استيراد ملف المورد الخارجي-> <!-<contex <!-Proxool Connection Pool-> <bean id = "dataSource"> <!-اسم برنامج التشغيل ، mysql-> <property name = "driver" value = "$ {db.driver}"> </property> <!-FORXOOL. (لا يتم استخدام Proxool ، ولكن لا يمكن تركه)-> <property name = "user" value = "$ {db.username}"> </property> <!-كلمة المرور (لا يتم استخدام Proxool ، ولكن لا يمكن تركها)-> <property name = "password" value = "$ {db.password}"> </property> عند الانتهاء من الاستطلاع ، أعد تدويره على الفور. تم الآن تعيين تدمير المهلة على 4 ثوان)-> <property name = "Housekeepingsleeptime" value = "3000"> </property> <!-تحقق تلقائيًا مما إذا كان الاتصال مكسورًا-> <property name = "testbeforeuse" value = "true"> </property> <!-إذا تم العثور على اتصال قاعدة بيانات الخمول ، فإن حافظ على اختبار المنزل. من الأفضل تنفيذ هذا البيان بسرعة كبيرة. إذا لم يتم تعريفها ، فسيتم تجاهل عملية الاختبار-> <property name = "HousekeepingTestSql" value = "SELECT COUNT (1) من DUAL"> </property> <!-إذا كان مدبرة المنزل تكتشف أن وقت نشاط الخيط أكبر من هذه القيمة. سوف يقتل الخيط. لذا تأكد من عرض النطاق الترددي للخادم الخاص بك. ثم تعيين قيمة مناسبة. الافتراضي هو 5 دقائق. الآن اضبط 10 ثوانٍ-> <property name = "MaximumActiveTime" value = "10000"> </property> <!-الحد الأدنى لعدد اتصالات الخمول المراد الاحتفاظ به (الآن تعيين 20)-> <property name = "propotypecount" value = "20"> </property> <! عدد الاتصالات (الآن تعيين 50)-> <property name = "MinimumConnectionCount" value = "50"> </spleneration> <!-إذا كان هذا صحيحًا ، فسيتم تسجيل كل عبارة SQL التي تم تنفيذه خلال فترة التنفيذ (مستوى التصحيح). يمكنك أيضًا تسجيل قائمة اتصال (انظر Proxoolfacade) للحصول على هذه المعلومات. -> <name property = "trace" value = "false"> </property> <property name = "verbose" value = "true"> </property> </bean> <!-سجل معاملة مدير المعاملات-> <bean id = "txmgr"> <property name = "dataSource" ref = "datasource> </propert المعاملات-manager = "txmgr"/> <!-تكوين myBatis 'sqlSessionFactory-> <bean id = "sqlsessionfactory"> <property name = "datasource" ref = "dataSource"> </property name = "configlocation" value = "classpath: يمكن أن يؤدي ذلك إلى مسح الخريطة ككل-> <bean> <!-إذا كان هناك تقارير متعددة ، افصلها مع passas-> <property name = "basePackage" value = "com.krry.mapper"> </property> <property name = "sqlSessionFactoryBeanname" value = "sqlsessionfactory" ملف تكوين MVC Spring: springmvc.xml
<؟ xmlns: p = "http://www.springframework.org/schema/p" XSI: schemalocation = "http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframeworg http://www.springframework.org/schema/util http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd "> <! formattingConversionserviceFactoryBean-> <mvc: تحركه التعليقات التوضيحية> <mvc: الرسائل-سجلات التسجيل = "true"> <bean> <property name = "supportedediatepes"> <list> text/cla <bean/> <bean/> <bean> <boan> <property name = "precixjson" value = "false"/> <property name = "objectmapper"> <bean> <! </property> <!-لا يتم عرضه عندما يكون الحقل فارغًا-> <property name = "serializationInclusion"> <value type = "com.fasterxml.jackson.annotation.jsoninclude.includ <Value> application/json ؛ charset = utf-8 </value> <value> application/x-www-form-urlencoded ؛ charset = utf-8 </value> </list> </propert base-package = "com.krry.controller"> </context: component-scan> <!-يجب ضبط الوصول إلى ملفات الموارد الثابتة ، لأنه في تكوين springmvc ، سيتم حل جميع الطلبات (. <!-<mvc: default-servlet-standler //>-> <mvc: الموارد mapping = "/resourse/**" location = "/resourse/"/> <!-تعريف اعتراضية-> <mvc: interceptors> <mvc: interceptor> <!-المركز الشخصي أيضًا إلى تسجيل الدخول إلى بدء التشغيل مع المسؤول عن intercep path = "/admin/**"> </mvc: mapping> <!-هذا هو المسار الذي لن يدخل التقاطع-> <mvc: استبعاد path path = "/resourse/**"/> <! محلل-> <bean id = "multipartresolver" p: defaultencoding = "utf-8"> <property name = "apploadtempdir" value = "/temp"> </property> <property name = "maxuploadsize"> <value> 209715200 </value> <! <value> 4096 </value> <!-حجم 4 كيلو بايت القراءة والكتابة-> </property> </bean> <!-عرض تقديم JSP/freemaker/velocity-> <bean> <!-إنشاء مسار إلى تخزين الصفحة-> <اسم property> </beans>
ملف تكوين قاعدة البيانات: jdbc.properties
db.driver = oracle.jdbc.oracledriver db.url = jdbc: oracle: thin:@127.0.0.1: 1521: orcl db.username = 4m+la23kca4 = db.password = wwijciympau/=
لقد استخدمت خوارزمية التشفير هنا
ملف تكوين السجل: log4j.properties
log4j.Rootlogger = debug ، console ، fileLog4j.appender.console = org.apache.log4j.consoleAppenderLog4j.Appender.console.layout = org.apache.log4j.patternlayoutlog4j.appender.console.layout.conversion HH: mm: ss} ٪ -5p [٪ t] ٪ 10l - ٪ m ٪ nlog4j.appender.file = org.apache.log4j.rollingfileappenderlog4j.appender.file. truelog4j.appender.file.layout = org.apache.log4j.patternlayoutlog4j.appender.file.layout.conversionpattern = ٪ d {yyyy/mm/dd/hh: mm: ss} -5p [٪ t] ٪ 10l - ٪ m n ملف تكوين MyBatis: mybatis-config.xml
<؟ name = "cacheenable" value = "true" /> <!-قم بإيقاف تشغيل التحميل الفوري للكائن المرتبط بالأداء-> <setting name = "lazyloadingenabled" value = "true" /> <!-اضبط نموذج تحميل الكائن المرتبط. فيما يلي حقل تحميل عند الطلب (يتم تحديد حقل التحميل بواسطة SQL). لن يتم تحميل جميع حقول الجدول المرتبط بتحسين الأداء-> <الإعداد name = "aggressivelazyloading" value = "false" /> <!-للاستعلامات غير المعروفة SQL ، يُسمح بإعادة مجموعات النتائج المختلفة لتحقيق تأثير مشترك-> <setting name = "multipleresultsensable" value = "true" /> <!-السماح لاستخدام قيم المفاتيح الأساسية المخصصة (مثل ترميز UUID 32 بت الذي تم إنشاؤه بواسطة البرنامج كقيم رئيسية) ، وسيتم كتابة استراتيجية توليد PK لجدول البيانات بشكل مفرط-> <STETTER NAME = "usegeneratedkys" value = "true" /> <! <!-ذاكرة التخزين المؤقت SQL لعمليات تحديث الدُفعات لتحسين الأداء-> <Setting Name = "DefaultExecutortype" value = "batch" /> <!-timeout إذا لم تستجب قاعدة البيانات لأكثر من 25000 ثانية-> <إعداد name = "defaultStatementTimeOut" value = "25" value = "equals ، clone ، hashcode ، toString"/> </settings> <typealias> <!-الاسم المستعار لكائن المستخدم المخصص-> <!-<typealias type = "com.krry.mybatis.sysmanage.entity.user" alias = "user"/>-! </configuration>
ملف تكوين برنامج الشبكة: web.xml
<؟ XSI: schemalocation = "http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns id = "webapp_id" version = "3.1"> <display-name> maven_ssm </isplay-name> <lelf-file-lister> <lispile-file> index </iship-file> </self-file-list <Param-value> classpath: applicationContext.xml </parm-value> </suctext-param> <!-مستمع سياق الربيع-> <stleder> <stanker-class> org.springframework.web.context.contextloaderlistener </lexterer-class> </beader> <! <Caneerer-Class> org.springframework.web.util.introspectorcleanuplistener </stanterer-class> </stanter> <lipter> <filter-name> الترميز </filter-name> <liter-class> org.springframework.web.filter.charactering <Param-Name> الترميز </param-name> <Param-value> utf-8 </parm-value> </IPT-PARAM> </filter> <filter mapping> <filter-name> الترميز </filter-name> <Url-pattern>/*</ <Srevlet-Name> maven_ssm </servlet-name> <Servlet-class> org.springframework.web.servlet.dispatcherservlet </servlet-class> <!-تكوين ملف تكوين springmvc-> <! springmvc01-servlet.xml-> <Ing-param> <Param-name> contextConfigLocation </param-name> <param-value> classpath: springmvc.xml </param-value> </ith-param> </itreslet> <Url-pattern>/index </url-pattern> </stervlet-mapping> <!-يمكنك مطابقة *.do ، *. يوصى باستخدام هذه الطريقة/*: لا ينصح باستخدامه-> <servlet-mapping> <sterlet-name> maven_ssm </servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> </web-app>
في هذه المرحلة ، اكتمل التكوين الأساسي ويتم الاعتماد على حزمة JAR تلقائيًا. اختبار وكتابة رمز جافا اللاحق
ما سبق هو كل محتوى هذه المقالة. آمل أن يكون ذلك مفيدًا لتعلم الجميع وآمل أن يدعم الجميع wulin.com أكثر.