项目结构分析
项目出现的问题or注意的地方
1、 @repository用在注解上
我在做慕课实战项目的时候,有看到他在dao层写注解,他说把Bean放在spring容器中,是为了能在业务层进行自动注入依赖,实际上我在其他视频中看到可以不需要因为当你在配置mybatis配置中配置了session工厂对象,它会帮我代理实现这个接口,你可以在业务层直接自动注入了。
感觉这样是不是多此一举啊?
当你在配置spring核心配置中配置了session工厂对象,它会帮我代理实现这个接口,已经在spring容器里面了,你可以在业务层直接自动注入了。
@Repository("departmentDao")
public interface DepartmentDao {
2、视图解析器
<!--session工厂-->
<bean class="org.mybatis.spring.SqlSessionFactoryBean" id="sessionFactory">
<property name="dataSource" ref="dataSource"/>
<property name="typeAliasesPackage" value="com.imooc.oa.entity"/> <!--配置实体类的别名-->
</bean>
<!--配置映射接口:扫包-->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="sqlSessionFactoryBeanName" value="sessionFactory"/><!--注意这个啦-->
<property name="basePackage" value="com.imooc.oa.dao"/>
</bean>
不明白此处的作用:
<property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
解答:
可能是为了加载jstlView标签库(jstl的jar包),去掉也没事。
3、spring配置session工厂类
<!--session工厂-->
<bean class="org.mybatis.spring.SqlSessionFactoryBean" id="sessionFactory">
<property name="dataSource" ref="dataSource"/>
<property name="typeAliasesPackage" value="com.imooc.oa.entity"/> <!--配置实体类的别名-->
</bean>
这里主要是强调可以将配置session工厂,还可以通过扫包的方式同时配置实体类的别名
了解一下,更多取别名方式
其次是这个语句不明白:
<property name="sqlSessionFactoryBeanName" value="sessionFactory"/><!--注意这个啦-->
解答:
1
4、配置数据库
mysql 连接url中useUnicode=true&characterEncoding=UTF-8 的作用
jdbc.perperties:
jdbc.url = jdbc:mysql://localhost:3306/oa?useUnicode=true&characterEncoding=utf-8"
5、关于Contoller方法传参数Map来存储数据
@RequestMapping("list")
public String list(Map<String,Object> map){
map.put("departmentList",departmentBiz.getAll());
return "department_list";
}
这里使用Map,说是,Map是通用的,及时不使用SpringMVC框架也可以使用。