最近发现,我对于ssh的 自动注入配置 还是不熟悉,于是整理了一下 终于做了一个 简单的 注入配置出来。 以前都是在applicationContext.xml 里面这样配
<bean id="loginAction" class="com.dj.ssh.action.LoginAction" scope="prototype" autowire="byName"> <property name="userService" ref="userService"></property> </bean> <bean id="userService" class="com.dj.ssh.service.impl.UserServiceImpl"> <property name="userDAO" ref="userDAO"></property> </bean> <bean id="userDAO" class="com.dj.ssh.dao.impl.UserDaoImpl"> <property name="sessionFactory" ref="mySessionFactory"></property> </bean
后来发现,mdzz,直接注入service,注入就可以了。
于是就有了这篇ssh框架最简单配置。
新手可以看一下。 我将从 用myeclipse 生成ssh框架 的第一步 一直讲到 注入 service
环境:myeclipse 8.5,用eclipse的插件如何快速生成ssh项目,还是自行百度吧 (其实大部分博主这个时候会说的是 :请参考我另一篇博文)
好,新建web项目,项目名称demo
添加struts支持 右击你的项目选中Myeclipse——》 Add Struts Capabilities
然后你会看到这个界面 此时 你需要点击 struts2.1
点击后的界面 直接finish 就可以了
struts 支持 配置完毕,注意,此时,先配置 spring支持,一定要先配置spring支持
此时
其实上面那几个勾选的 不钩那么多也可以
此时。假如配置过数据库的 就不用配了。 假如没有配置过的童鞋
点击window ——》open perspective——》 Myeclipse java persistence
在打开的DB Browser 框中 右键 new
在打开的 框中 选中 mysql connector
然后 点击 Add JARS 选择一个 mysql-connector-java.jar 然后 蓝色部分 照着填 点击 finish 就配置好了
第三步 增加Hibernate 支持
老规矩 在Myeclipse 里面选 Add Spring
接着
点击 Next
点击下一步
继续下一步
这里就选中之前配置好的数据库了 接着点击 下一步
点击finish ,此时 一个最初级的ssh项目 就 被你 通过Myeclipse 插件给自动生成了。
接下来,要配置一下,在action 层 注入service
首先配置 web.xml
<!--配置 spring 配置文件的位置 --> <context-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:applicationContext.xml</param-value> </context-param> <!--配置 spring监听器 --> <listener> <listener-class> org.springframework.web.context.ContextLoaderListener </listener-class> </listener>
接着配置 applicationContext.xml
此时,由于我们是自动生成的 所以 在src目录下的applicationContext.xml 文件中 已经有很多代码了。 我们不用管他
随便在开头还是末尾 加上三行关键的代码就可以了
<!-- 打开自动装配--> <context:annotation-config></context:annotation-config> <!-- 设置扫描路径 配置了以后,他会 自动扫描com.service.*.* 路径下的所有的包 --> <context:component-scan base-package="com" use-default-filters="false"> <context:include-filter type="regex" expression="com.service.*.*"/> </context:component-scan>
接着 配置 struts.xml 文件
<package name="login" extends="struts-default"> <action name="login" class="com.action.UserAction"> <result name="success">index.html</result> </action> </package>
此时 当我在浏览器里输入http://localhost:8080/demo/login.action 的时候 他会通过struts 转发去com.action.UserAction 文件下
UserAction 返回success 的话 就 跳转到index.html 页面
com.action.UserAction 代码
public class UserAction extends ActionSupport{ private UserService service; //Autowired 通过set方法自动装配 service @Autowired public void setservice(UserService userservice) { this.service = userservice; } @Override public String execute() throws Exception { service.login(); if(service!=null)return "success" ; else return "false"; } }
此时 其实还没建service 层呢。更别提 service.login()方法了。
所以 新建com.service 包 在com.service包下 新建UserService 接口
UserService 接口代码
public interface UserService { void login(); }
新建com.service.impl 包 新建com.service.impl.UserServiceImpl 文件 实现UserService接口
代码如下
public class UserServiceImpl implements UserService { public void login() { System.out.println("这是一个登陆方法"); } }
此时已经完事了。 项目结构图如下
把项目部署到tomcat 下。 run servers
怎么会404 呢? 那是因为 我并没有写index.html
在struts.xml 的配置中 我配置的是 返回 success 的话 去 index.html 页面
又有这个判断
if(service!=null)return "success" ;
所以,此时service 注入成功了。
在去看控制台
prefect 完美,这就是ssh项目插件生成,以及配置注解注入service 的全过程