标签:Mybatis
Java 1.8新建Maven SSM项目笔记(九)
数据库字段与lombok
Entity类通常都要实现该类所有属性的getter/setter方法,如果使用lombok,可以完全省略该步,只书写属性,并在Entity类的开头加上@Data注解,并导入对应jar包,就可以由lombok在编译时自动生成toString方法、 hashcode方法、equals方法、所有属性的普通getter/setter方法。
当然,如果你需要自定义某个属性的getter/setter方法,可以自己书写具体的方法,该方法在编辑器上会出现override的三角形标记。即覆盖了lombok的对应方法。
在eclipse中使用lombok时,需要做以下设置,否则eclipse会报所有属性的普通getter/setter方法未定义。
执行lombok.jar
或者在eclipe.ini中末尾添加以下内容:
-Xbootclasspath/a:lombok.jar
-javaagent:lombok.jar
Java 1.8新建Maven SSM项目笔记(一)
用Maven新建一个SSM项目,碰到很多细节问题,这次做个笔记,以备查询。
- Maven新建项目的本地资源化
- 高版本Java下Maven编译项目
- Web.xml的配置
- Spring的配置
- SpringMVC的配置
- Mybatis的配置
- Mybatis Generator的使用
- 数据库字段与lombok
- Eclipse编辑器的优化
Java 1.8新建Maven SSM项目笔记(二)
Maven新建项目的本地资源化
Apache Maven是当今非常流行的项目构建和管理工具,它把开发人员从繁杂的项目依赖关系处理事务中解放出来,完全自动化管理依赖问题。在Web应用开发过程中,通常我们会用到maven的archetype插件来生成项目框架,例如:
mvn archetype:generate -DgroupId=com.yourhost.app -DartifactId=your-app -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
但通常这个过程是虐心的。
现象:
用maven构建项目骨架时,速度非常慢,无论是在命令行中直接使用,还是在IDE中使用。如果再加上网络不好,那就更难熬了,喝完三杯咖啡都不见得能看到构建结果。以我的经验,很多时候都要30分钟左右…………
原因:
要了解其中的原因,需要知道maven是如何运作的。构建过程中,我们只是向maven提供了一些groupId、artifactId、archetypeArtifactId等信息,只有这些信息的情况下maven是如何构建出整个项目的呢?它的知识来源于哪里呢?答案是:
http://repo.maven.org/maven2/archetype-catalog.xml
这里记录了,所有archetype构建信息,maven通过archetype插件构建项目骨架时会远程访问页面,通过maven的-X参数可以证明这一点。
.............[DEBUG] -- end configuration -- [INFO] Generating project in Batch mode [DEBUG] Searching for remote catalog: http://repo.maven.apache.org/maven2/archetype-catalog.xml (通常就卡在这一步长达25+分钟)..............
直接在浏览器打开这个链接的速度一样非常慢。打开后通过浏览器的查看源码功能,如下所示:
<?xml version="1.0" encoding="UTF-8"?><archetype-catalog> <archetypes> <archetype> <groupId>am.ik.archetype</groupId> <artifactId>maven-reactjs-blank-archetype</artifactId> <version>1.0.0</version> <description>Blank Project for React.js</description> </archetype> <archetype> <groupId>am.ik.archetype</groupId> <artifactId>msgpack-rpc-jersey-blank-archetype</artifactId> <version>1.0.7</version> <description>Blank Project for Spring Boot + Jersey</description> </archetype> <archetype> <groupId>am.ik.archetype</groupId> <artifactId>msgpack-rpc-jersey-blank-archetype</artifactId> <version>1.0.6</version> <description>Blank Project for Spring Boot + Jersey</description> </archetype> <archetype> <groupId>am.ik.archetype</groupId> <artifactId>msgpack-rpc-jersey-blank-archetype</artifactId> <version>1.0.5</version> <description>Blank Project for Spring Boot + Jersey</description> </archetype> <archetype> <groupId>am.ik.archetype</groupId> <artifactId>msgpack-rpc-jersey-blank-archetype</artifactId> <version>1.0.2</version> <description>Blank Project for Spring Boot + Jersey</description> </archetype> ................... ...................以下省略13W行......
复制文件到编辑器可知,文件长达13W行,文件大加上网络原因,导致访问速度很慢。
解决方案:
如上分析可知,是由于achetype-catalog.xml文件的访问问题,导致了整个构建过程的缓慢,所以是否能够将文件保存到本地,成为一种解决思路。翻阅Maven官方文档可以找到,确实是可以的。官方链接如下:
http://maven.apache.org/archetype/maven-archetype-plugin/specification/archetype-catalog.html
按照如下步骤:
1)准备archetype-catalog.xml文件
方式1:通过浏览器查看http://repo.maven.org/maven2/archetype-catalog.xml页源码,复制到本地,命名为archetype-catalog.xml。
方式2:通过命令行 curl http://repo.maven.org/maven2/archetype-catalog.xml > archetype-catalog.xml
2)将上述文件放置到maven的默认路径下
注意,这不是指的安装路径,而是mvn运行时默认的存放repository的路径,一般在用户根目录下的一个隐藏目录,~/.m2。如果做过更改,可以在maven的设置文件中查看 具体在哪个位置,设置文件在maven安装目录/config/settings.xml中。
3)在构建时,在archetype:generate后加上 -DarchetypeCatalog=local参数。
解决,Have fun!再次尝试构建项目骨架,飞一般的感觉。
参考资料:
http://maven.apache.org/archetype/maven-archetype-plugin/specification/archetype-catalog.html
如果还是想在IDE里面建立maven项目,又想利用本地文件加快速度,可以按照以下方法操作:
Step 1: 在”Window (菜单项目)”上左键单击”Preferences (菜单项目)”
Step 2: 在”Archetypes (树项目)”上左键单击
Step 3: 在Maven Archetype catalogs列表”上左键单击
Step 4: 在”Add Local Catalog… (按钮)”上左键单击
Step 5:在”Browse… (按钮)”上左键单击
Step 6: 在”Select Archetype catalog”中左键单击
Step 7: 在”名称 (编辑)”上左键单击
Step 8: 在”打开(O) (按钮)”上左键单击,选择下载后的文件
Step 9:单击OK (按钮)
Step 10:单击Apply按钮
Step 11: 单击OK (按钮
Step 12: 在空白处右键单击,选择”New -> Other”
Java 1.8新建Maven SSM项目笔记(四)
Web.xml的配置
<?xml version="1.0" encoding="UTF-8"?>
<web-app>
<display-name>XXX</display-name>
<servlet>
<servlet-name>springmvc-app</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:springmvc-config.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>springmvc-app</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
<filter>
<filter-name>SpringCharacterEncodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>SpringCharacterEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>
- display-name可以随便起名字,只是为了与其他工程相区分。
- <servlet>中的servlet-name也可以随便起,但是要与<servlet-mapping>中的servlet-name保持一致。
- classpath在maven的web项目中,对应的目录是src/main/java和src/main/resources两个目录,放在其中一个都可以访问到,通常为了项目结构清晰,我们一般都放在src/main/resources目录
- <load-on-startup>1</load-on-startup>表示最早启动
- <servlet-mapping>中的<url-pattern>/</url-pattern>也可以改成*.do,类似Struts的模式。写到对应的方法的RequestMapping时值就可以写成XXX.do
Java 1.8新建Maven SSM项目笔记(三)
高版本Java下Maven编译项目
我的软件环境:Java 1.8
Dynamic Web Module 3.1
来源: http://www.cnblogs.com/zhyp/p/5635700.html
记录一下,水平太菜,花费了半天时间。
pom.xml
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>1.7</source>
<target>1.7</target>
</configuration>
</plugin>
</plugins>
</build>
- Another way is to edit the project facet configuration file itself: org.eclipse.wst.common.project.facet.core.xml
- Change the dynamic web module version in this line to 3.1 – <installed facet=”jst.web” version=”3.0″/>
- And then Maven -> Update Project. You’ll find this file in the .settings directory within the Eclipse project
我的环境是Java1.8,在我修改项目的Project facets之后,就已经成为1、2两点所写的样子了。但是问题依旧,所以我的步骤是
- 修改pom.xml
- 将source和target改成1.8,如下所示
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
- 在项目的属性中选择Maven -> Update Project.