发表于: 2017-02-22 01:21:09

2 1909


一。今天完成的:

1.解决昨天装配Bean报错的问题,不再报错但返回id都为0

2.继续学习了Bean容器的一些知识

3.学习mybatislog4j基础,实践了一个简单的log4j用例;

如图

 

二。明天计划的事情

1.解决今天遇到的问题

2.继续学习mybatislog4j,至少要把log4j应用到任务项目中去,争取应用mybatis

3,学习spring MVC

三。今天的收获

1.Bean实例初始化两种方法:

.实现org.springframework.beans.factory.InitializingBean接口,覆盖afterPropertiesSet方法

.配置init-method

2.Bean销毁的两种方法

.实现org.springframework.beans.factory.InitializingBean接口,覆盖destroy方法

.配置destroy-method=”方法名

3.配置全局默认初始化方法,销毁方法:

<beans xmlns=……后面添加init-methoddestroy-method>(bean,beans)

(当一个bean设置了实现org.springframework.beans.factory.InitializingBean接口方法或在bean里配置了初始化销毁方法时就不再调用默认方法)

4.Classpath扫描与组件管理

Spring3.0开始,Spring JavaConfig项目提供了很多特性,包括使用java而不是XML定义bean,比如@Configuration,@Bean,@Import,@DependsOn

@ Component是一个通用注解,可用于任何bean

@Respository通常用于注解DAO,即持久层

@Service通常用于注解Service,即服务层

@Controller通常用于注解Controller,即控制层(MVC)

 

5.类的自动检测及bean的注册

为了能够检测到这些类并注册相应的bean,需要在xml文件中添加<context:component-scan>,它包含了<context:annotation-config >,所以我们一般使用<context:component-scan>

默认情况下,类被自动发现并注册bean的条件是:使用@Component, @ Respository, @Service, @Controller或者使用@component的自定义注解

还可以通过过滤器修改上面的行为

还可以使用use-default-filters=”false”禁用自动发现与注册

扫描过程中组件被自动检测,那么bean名称是由BeanNameGenerator生成的,通常生成规则以类名为基础,第一字母小写定义的(我们也可以自动以bean命名策略,实现BeanNameGenerator接口,并一定要包含一个无参数构造器)

6.通常情况下自动查找的spring组件,scopesingleton,

7. @Required@Autowired区别(@Autowired比较常用)

@Required注解适用于bean属性的setter方法

这个注解仅仅表示,受影响的bean属性必须在配置时被填充,通过在bean定义或通过自动装配一个明确的属性值

@Autowired注解用途更广,既可以用在setter方法上也可以用在构造器或成员变量上

通过设置@Autowired(required=false)避免因找不到合适的bean导致的autowiring失败抛出异常

每个类只能有一个构造器被标记为required=true

@Autowiredd必要属性建议使用@Required

8.mybatis是什么?

       ①刚接触mybatis被一堆没见过的关键字搞懵逼了,硬着头皮学下去,简单理解到mybatis是用于替换DAO层,有了mybatis,可以不用在类中写sql语句代码;

②用mybatis之后sql写在哪里?

1.通过配置xml文件2.通过注解的方式;推荐用第一种方式

③如何实现DAO接口?

1.内部通过mapper机制自动实现DAO接口2.通过API编程方式实现

实际开发中建议使用Mapper自动实现方式;

9.log4j是一个强有力的日志操作包;简单理解log4j就是:它就是一个类似于打印语句的封装包,而且功能较之打印强大的多!

log4j应用到任务项目中,步骤应该是引入log4j依赖包,创建log4j.properties文件,获取日志记录器,读取配置文件,使用Logger.debug(“”)就可以替代System.out.println()方法啦!

 

四。遇到的问题

1。测试类不报错但是学生注册后返回的的ID不对!为什么注册学生返回ID都是0?我调用了studentgetid()方法呀?调用studentgetname()方法是成功的,为什么调用getid()方法就返回的都是0?数据库里ID一直都是设置为自增长的.

测试类代码如下

服务层代码:

2。对于log4j中配置监听器内容难以理解,感觉log4j虽然是个小东西但也包含很多自己没接触的东西;



返回列表 返回列表
评论

    分享到