点击左侧的Spring
Additional Libraries and Framework里面选择Spring,Web Application, Struts2, Application Server(选择tomcat就可以了),Hibernate;
点击Next,输入项目名称;完成后等待IDEA下载依赖包
Next
测试spring是否可用
先创建TestService文件
在web,WEB-INF下写入bean
代码
class="com.yan.test.TestService" id="testService">
name="name" value="spring">
最后创建SpringTest文件
package com.yan.test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.FileSystemXmlApplicationContext;
public class SpringTest {
public static void main(String[] args) {
ApplicationContext ac = new FileSystemXmlApplicationContext("web/WEB-INF/applicationContext.xml");
TestService ts = (TestService)ac.getBean("testService");
ts.hello();
}
}
最后出现
Spring测试成功
使用Hibernate,要引入的包有mysql-connector-java-5.1.47还有commons-dbcp2-2.1和commons-pool2-2.4.1;
可以直接使用IDEA的maven功能下载依赖包,然后直接引入;
操作为 File->project Structure->Libraries->点击右侧的加号->From maven; 然后输入对应的包名就可以了;对于这两个包我们可以直接打勾Download to,它们没有过多的依赖包下载,截图如下
在src下创建bean包,然后建立持久化类.这里主要是使用了IDEA的persistence下的OR映射功能;
建立数据库, 点击 IDEA最左下角的一个按钮,会弹出一些选项,然后选择Database,点击加号,选择Data Source -> MySQL, 进入后进行数据库的信息配置
为了可以使用Persistence的sessionFactory进行生成持久化映射,需要先配置applicationContext.xml,让其接管Hibernate的配置;操作如下,在applicationContext.xml里面加入如下的内容(password的值根据自己的数据库进行配置)如果没有进行这一步的话,在Persistence界面是不会出现sessionFactory的。
如果没有出现sessionFactory,参考https://blog.csdn.net/yj19961126/article/details/82658852
id="dataSource" class="org.apache.commons.dbcp2.BasicDataSource" destroy-method="close"> name="driverClassName" value="com.mysql.jdbc.Driver"> name="url" value="jdbc:mysql://localhost:3306/test"> name="username" value="root"/> name="password" value="123"/> id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean"> name="dataSource" ref="dataSource"> name="hibernateProperties"> key="hibernate.dialect">org.hibernate.dialect.MySQLDialect key="hibernate.show_sql">true key="hibernate.connection.url">jdbc:mysql://localhost:3306/test key="hibernate.connection.driver_class">com.mysql.jdbc.Driver
进行持久化类生成,点击左下角的按钮, 选择Persistence; 在Persistence界面,选择下拉,右击sessionFactory->Generate Persistence Mapping; 相关截图如下;如果没有出现sessionFactory的话,可以下载查看下https://blog.csdn.net/yj19961126/article/details/82658852
在Generate Persistence Mapping界面, "Choose Data Source"选择我们一开始新建的TESTDB数据库, "Package"选择bean; "Database Schema Mapping"点击我们 建立的user表, 相关截图如下
Ok
建Service层
代码:
public interface UserService { public void add(User user); }
代码
public class UserServiceImpl implements UserService { @Qualifier("sessionFactory") @Autowired private SessionFactory sessionFactory; public void setSessionFactory(SessionFactory sessionFactory) { this.sessionFactory = sessionFactory; } @Override public void add(User user) { Session s = sessionFactory.openSession(); Transaction tx= s.beginTransaction(); s.save(user); tx.commit(); } }
让Spring接管Hibernate的配置文件,时建立 bean
代码
id="user" class="com.yan.service.serviceImpl.UserServiceImpl"> name="sessionFactory" ref="sessionFactory">
进行测试,修改test包下的hibernateTest.java,代码如下
代码
package com.yan.test; import com.yan.bean.User; import com.yan.service.UserService; import com.yan.service.serviceImpl.UserServiceImpl; import org.springframework.context.ApplicationContext; import org.springframework.context.support.FileSystemXmlApplicationContext; public class HIbernateTest { public static void main(String[] args) { ApplicationContext ac = new FileSystemXmlApplicationContext("web/WEB-INF/applicationContext.xml"); UserService userService = (UserServiceImpl)ac.getBean("user"); User user = new User(); user.setUserId(1); user.setName("yan"); user.setPhone("23123123"); userService.add(user); } }
结果出现以下即成功
要引入struts2,要先引入两个依赖,一个是struts2-spring-plugin-2.3.24, spring-web-3.0.5和log4j-1.2.14.jar; 对应前两个我们一样使用IDEA的maven功能进行下载,但是不要直接入我们的lib目录下,因为它会下载比较多的依赖;我们选择手工加入;先如下下载好,"Download to "不要打勾
struts2-spring-plugin和spring-web两个jar包从maven库中找出来,并且复制到项目lib下,并且右击两个jar包,"Add as Library";否则,web.xml中会报错,找不到jar包
log4j-1.2.14就相对简单,直接打勾Download to 就可以了
修改web/WEB-INF/web.xml文件,引入struts2,配置如下
没有ng,删掉即可,可能是版本原因
org.springframework.web.context.ContextLoaderListener contextConfigLocation WEB-INF/applicationContext.xml
建一个action, 在src下加一个action包,然后新建一个UserAction.java文件
代码如下
package com.yan.action; import com.opensymphony.xwork2.ActionSupport; import com.yan.bean.User; import com.yan.service.serviceImpl.UserServiceImpl; import org.springframework.beans.factory.annotation.Autowired; public class UserAction extends ActionSupport { private int userId; private String userName; private String userPhone; @Autowired private UserServiceImpl userService; public int getUserId() { return userId; } public void setUserId(int userId) { this.userId = userId; } public String getUserName() { return userName; } public void setUserName(String userName) { this.userName = userName; } public String getUserPhone() { return userPhone; } public void setUserPhone(String userPhone) { this.userPhone = userPhone; } public String add(){ User user = new User(); user.setUserId(getUserId()); user.setName(getUserName()); user.setPhone(getUserPhone()); userService.add(user); return SUCCESS; } public void setUserService(UserServiceImpl userService) { this.userService = userService; } }
在web/WEB-INF下的applicationContext.xml下加入一个新的bean,内容如下
id="userAction" class="com.yan.action.UserAction">
name="userService" ref="user">
Name 对应Action中的service 的实例对象
在src下的struts.xml下进行如下修改,
name="struts.objectFactory" value="spring" /> name="user" namespace="/user" extends="struts-default"> name="add" class="userAction" method="add"> name="success">/success.jsp
Method中add必须与Action中方法一致
否则会报错
在web目录下加入index.jsp和success.jsp文件
特别注意:引入新的包的话,直接运行的话,可能会有包没有引入成功的问题,可以到File->Project Structure->Artifacts 查看,在右边的最下边如果出现一个fix 按钮的话,就点击,然后点击 add All
如果正常的话,点击运行,相关截图如下,图的最右边的运行按钮,记得將对象从Test切换为Tomcat
成功的话,可以直接在浏览器,输入
http://localhost:8080/user/add?userId=2&userName=jun&userPhone=1232312
完整项目下载地址:链接:https://pan.baidu.com/s/1QDeYlRkOeSwmaiD1DCYYXg 密码:7lrm
本文参考博客:https://blog.csdn.net/bpgdzfj/article/details/80940150
感谢作者!!!