初级 ssm 框架 配置 。需要配合注解使用
spring + mybatis
<!--加载资源文件-->
<context:property-placeholder location="classpath:com/tjx/config/commons/*.properties"/>
<!--配置数据源-->
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="${db.driver}"/>
<property name="url" value="${db.url}"/>
<property name="username" value="${db.username}"/>
<property name="password" value="${db.password}"/>
</bean>
<!--SQL session 工厂-->
<bean id="factory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource"/>
<property name="typeAliasesPackage" value="com.tjx.pojo"/>
</bean>
<!--映射文件扫描-->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="com.tjx.mapper"/>
<property name="sqlSessionFactoryBeanName" value="factory"/>
</bean>
<!--扫描service注解-->
<context:component-scan base-package="com.tjx.service"/>
<!--事务管理-->
<bean id="txManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource"/>
</bean>
<tx:annotation-driven transaction-manager="txManager"/>
MVC
<!--扫描控制层注解-->
<context:component-scan base-package="com.bjsxt.controller"/>
<!--打开注解驱动-->
<mvc:annotation-driven />
<!--内部资源视图解析器-->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/jsp/"/>
<property name="suffix" value=".jsp"/>
</bean>
<!--静态资源放行-->
<mvc:resources mapping="/static/**" location="/static/"/>
<!--文件上传-->
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"/>
<!--配置拦截器-->
<context:component-scan base-package="com.bjsxt.interceptor" />
<!--<mvc:interceptors>
<!–没有指定拦截路径, 表示全部控制器方法都拦截–>
<bean class="com.bjsxt.interceptor.LoginInterceptor" />
</mvc:interceptors>-->
<mvc:interceptors>
<!--<mvc:interceptor>
<mvc:mapping path="/**"/>
<ref bean="logInterceptor" />
</mvc:interceptor>-->
<mvc:interceptor>
<!--拦截的路径-->
<mvc:mapping path="/**"/>
<!--放行的路径-->
<mvc:exclude-mapping path="/user/login" />
<mvc:exclude-mapping path="/user/register" />
<mvc:exclude-mapping path="/static/**" />
<!--指定拦截器对象-->
<ref bean="loginInterceptor" />
</mvc:interceptor>
<ref bean="logInterceptor" />
</mvc:interceptors>
WEB
<!--加载 自定义的spring 配置-->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:config/spring/*.xml</param-value>
</context-param>
<!--启动web容器是自动装配 spring配置信息-->
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<!--解决post中文乱码-->
<filter>
<filter-name>characterEncodingFilter</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>characterEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<!--前端控制器 拦截所有非.jsp 的请求-->
<servlet>
<servlet-name>dispatcherServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:config/mvc/mvc.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>dispatcherServlet</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
controller 层注解
@Controller
@RequestMapping("/subjects")
public class SubjectsController {
@Autowired
private SubjectsService service;
/**
* 查询所有主题
* @param model
* @return
*/
@RequestMapping("/selAllSub")
public String selAllSub(Model model){
List<Subjects> list=service.selAll();
model.addAttribute("list",list);
return "/subject.jsp";
}
}
service注解
@Service
public class SubjectsServiceImpl implements SubjectsService {
@Autowired
private SubjectsMapper subjectsMapper;
@Override
public List<Subjects> selAll() {
return subjectsMapper.selAll();
}
}