SpringMVC+hibernate
在main中使用代码测试可以得到正确的对象,代码如下
public static void main(String[] args) {
ApplicationContext ctx=new ClassPathXmlApplicationContext("applicationContext.xml");
ForumService fs=(ForumService)ctx.getBean("forumService");
System.out.println(fs);
BoardController bc=(BoardController)ctx.getBean("boardController");
System.out.println(bc+"注入了:"+bc.getForumService());
}
可得到bc内的forumService和fs是同一个对象,注入正常
但是用tomcat启动web项目后总是提示controller内的forumService对象为NULL
下面是xml配置文件
<?xml version="1.0" encoding="UTF-8"?>
<!-- 指定Spring配置文件的Schema信息 -->
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-3.0.xsd">
<!-- 定义数据源Bean,使用C3P0数据源实现 -->
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"
destroy-method="close">
<!-- 指定连接数据库的驱动 -->
<property name="driverClass" value="com.mysql.jdbc.Driver" />
<!-- 指定连接数据库的URL -->
<property name="jdbcUrl" value="jdbc:mysql://localhost:3306/bbs" />
<!-- 指定连接数据库的用户名 -->
<property name="user" value="root" />
<!-- 指定连接数据库的密码 -->
<property name="password" value="19871013" />
<!-- 指定连接数据库连接池的最大连接数 -->
<property name="maxPoolSize" value="20" />
<!-- 指定连接数据库连接池的最小连接数 -->
<property name="minPoolSize" value="1" />
<!-- 指定连接数据库连接池的初始化连接数 -->
<property name="initialPoolSize" value="1" />
<!-- 指定连接数据库连接池的连接的最大空闲时间 -->
<property name="maxIdleTime" value="20" />
</bean>
<!-- 定义Hibernate的SessionFactory -->
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<!-- 依赖注入数据源,注入正是上面定义的dataSource -->
<property name="dataSource" ref="dataSource" />
<!-- mappingResouces属性用来列出全部映射文件 -->
<property name="mappingResources">
<list>
<!-- 以下用来列出Hibernate映射文件 -->
<value>wyc/bbs/model/Board.hbm.xml</value>
</list>
</property>
<!-- 定义Hibernate的SessionFactory的属性 -->
<property name="hibernateProperties">
<props>
<!-- 指定数据库方言 -->
<prop key="hibernate.dialect">
org.hibernate.dialect.MySQLDialect
</prop>
<!-- 是否根据需要每次自动创建数据库 -->
<prop key="hibernate.hbm2ddl.auto">update</prop>
<!-- 显示Hibernate持久化操作所生成的SQL -->
<prop key="hibernate.show_sql">true</prop>
<!-- 将SQL脚本进行格式化后再输出 -->
<prop key="hibernate.format_sql">true</prop>
<prop key="javax.persistence.validation.mode">none</prop>
</props>
</property>
</bean>
<bean id="boardDao" class="wyc.bbs.dao.BoardDao">
<property name="sessionFactory" ref="sessionFactory"></property>
</bean>
<bean id="forumService" class="wyc.bbs.service.ForumService">
<property name="boardDao" ref="boardDao"></property>
</bean>
<bean id="boardController" class="wyc.bbs.web.BoardController">
<property name="forumService" ref="forumService"></property>
</bean>
</beans>
相关推荐
在Spring + SpringMVC 整合 MyBatis 的过程中,可能会遇到Mapper注入失败的问题,这个问题通常是由于配置不正确或者依赖冲突导致的。以下是一些可能导致此类问题的原因和相应的解决策略。 1. **Spring Context未...
首先,SpringMVC作为Spring框架的一部分,继承了Spring的诸多优点,例如依赖注入(DI)和面向切面编程(AOP),这使得SpringMVC在处理业务逻辑和事务管理方面表现得更为出色。此外,SpringMVC天然支持RESTful Web...
它简化了Java Web开发,提供了强大的依赖注入、数据绑定以及异常处理等功能。 3. **Shiro**: Apache Shiro是一个强大的Java安全框架,涵盖了认证、授权、会话管理和加密等功能。在SSO场景下,Shiro可以作为应用内部...
1. **输入验证**:对用户输入进行校验,防止SQL注入和XSS攻击。 2. **密码处理**:对用户密码进行加密存储,提高安全性。 3. **权限控制**:实现基于角色的权限控制,限制未登录用户访问敏感资源。 **测试** 项目...
7. **安全考虑**:在实际项目中,我们还需要考虑安全性问题,例如防止SQL注入、XSS攻击等。Spring Security是一个很好的工具,它可以集成到SpringMVC中,提供身份验证和授权功能,增强系统的安全性。 在压缩包文件...
如果验证失败,我们可以使用模型属性(model attributes)传递错误信息,并重定向回登录页面。如果验证成功,可以重定向到其他受保护的页面。 7. **安全性考虑**: 在实际应用中,我们需要考虑安全性问题,如密码...
- 为了防止SQL注入,应使用PreparedStatement代替Statement,并确保正确处理用户输入。 - 对密码进行加密存储,登录时比较哈希值,而不是明文密码。 - 可以引入Apache Shiro或Spring Security来提供更全面的安全...
1. **防止 SQL 注入**:确保在处理用户输入时进行适当的参数化查询,避免 SQL 注入攻击。 2. **密码安全**:不应在代码中明文存储密码,应使用哈希和盐值对密码进行加密存储。 3. **CSRF 防御**:为敏感操作添加 ...
此外,还可以利用Spring的依赖注入(DI)和面向切面编程(AOP)特性来管理对象和实现解耦。 在SpringMVC中,请求参数可以通过注解如@RequestParam、@PathVariable和@RequestBody进行获取。例如,使用@RequestParam...
@Autowired注解用于自动装配依赖,这样我们无需手动创建对象,Spring会自动将依赖注入到需要的地方。 5. **@Repository**:在数据访问层,用于标记DAO(数据访问对象)类,这使得Spring能够处理数据库操作中的异常...
如果有失败,JUnit会提供详细的失败信息帮助定位问题。 在"mbts"这个文件夹中,可能包含了这个示例项目的源代码、测试代码和相关的配置文件。为了更深入地理解这个Demo,你可以检查其中的`src/test/java`目录,看看...
失败时,会显示错误消息。 6. **配置**:项目中会包含SpringMVC和Spring的配置文件,如`spring-servlet.xml`和`applicationContext.xml`。这些配置文件定义了bean的定义、数据源、事务管理器以及URL映射规则。 7. ...
此外,还需要防范SQL注入攻击,通过预编译的PreparedStatement来避免恶意SQL命令的执行。 7. **异常处理**: 开发者应确保程序中包含完善的异常处理机制,对可能出现的错误如数据库连接失败、SQL执行异常等进行...
Spring框架是Java开发中的核心框架,它提供了依赖注入(Dependency Injection)和面向切面编程(Aspect-Oriented Programming)等功能,极大地提高了开发效率。SpringMVC是Spring框架的一部分,专门用于构建Web应用...
5. 登录配置:配置登录页面和登录失败处理器,以及退出登录的逻辑。 SpringMVC和MyBatis的集成则涉及以下内容: 1. 创建MyBatis的配置文件,定义数据源、事务管理器等。 2. 配置MyBatis的扫描路径,使Spring能够...
2. **SQL注入防护**: 对用户输入进行预处理或使用ORM框架避免SQL注入。 3. **验证码验证**: 在注册时使用验证码防止自动注册。 4. **CSRF令牌**: 保护登录接口免受跨站请求伪造攻击。 通过以上步骤,你可以用Spring...
- SQL注入:使用预编译的PreparedStatement或MyBatis的动态SQL来防止恶意SQL注入。 - 参数校验:对输入数据进行严格的校验,避免非法数据引发的问题。 - 权限控制:设置合理的权限边界,防止越权操作。 - 定期...
7. **验证(Validation)**:为了确保用户输入的数据有效,Spring MVC 提供了 Bean Validation 框架,允许我们在模型类上添加验证注解,如 `@NotBlank`, `@Size`, `@Email` 等,验证失败时会返回错误信息。 通过以上...
总的来说,"SpringMVC_Upload.rar_shipvu7_springmvc_springmvc upload"示例涉及了Spring MVC框架下的多文件上传、返回值处理以及与数据库交互的关键知识点。通过学习和实践这些内容,你可以构建出健壮的Web应用程序...
**Spring集成SpringMVC/Mybatis** 在Java Web开发领域,Spring、SpringMVC和Mybatis是三个非常关键的框架,它们共同构建了一个强大的后端服务架构。Spring作为一个全面的框架,提供了依赖注入(DI)和面向切面编程...