一、注解相关
常见的注解:
- 1、
@controller
控制器(注入服务) - 2、
@service
服务(注入dao) - 3、
@repository
dao(实现dao访问) - 4、
@component
(把普通pojo实例化到spring容器中,相当于配置文件中的<bean id="" class=""/>)
@Component,@Service,@Controller,@Repository注解的类,并把这些类纳入进spring容器中管理。
下面写这个是引入component的扫描组件
<context:component-scan base-package=”com.mmnc”>
其中base-package为需要扫描的包(含所有子包)
- 1、@Service用于标注业务层组件
- 2、@Controller用于标注控制层组件(如struts中的action)
- 3、@Repository用于标注数据访问组件,即DAO组件.
- 4、@Component泛指组件,当组件不好归类的时候,我们可以使用这个注解进行标注。
@Service
public class UserServiceImpl implements UserService {
}
@Repository
public class UserDaoImpl implements UserDao {
}
getBean的默认名称是类名(头字母小写),如果想自定义,可以 @Service(“*”)
这样来指定,这种bean默认是单例的,如果想改变,可以使用@Service(“beanName”)
@Scope(“prototype”)来改变。可以使用以下方式指定初始化方法和销毁方法(方法名任意): @PostConstruct public void init() { }
二、Springboot测试相关
SpringBoot未编写完代码的情况下能否先用main方法测试Repository类?
1、不可以,因为SpringBoot使用启动类启动的,如果使用main方法,启动类未启动就无法获得注解,也就无法获得对象实例等
2、但可以用JUnit(Java语言的单元测试框架)来测:
多数Java的开发环境都已经集成了JUnit作为单元测试的工具
极限编程:
要求在编写代码之前先写测试,这样可以强制你在写代码之前好好的思考代码(方法)的功能和逻辑,否则编写的代码很不稳定,那么你需要同时维护测试代码和实际代码,这个工作量就会大大增加。因此在极限编程中,基本过程是这样的:构思-> 编写测试代码-> 编写代码-> 测试,而且编写测试和编写代码都是增量式的,写一点测一点,在编写以后的代码中如果发现问题可以较快的追踪到问题的原因,减小回归错误的纠错难度。
三、对象转化成JSONObject对象打印
怎么迅速将Java对象的详细内容打印下来?
比如你有一个复杂的对象:Person, 里边有姓名,电话,地址,地址又是一个复杂的类。
你有一个Person的对象person,你可以先将此对象转化成JSONObject
对象:
personJSON = JSONObject.fromObject(person);
然后在System.out.println(personJSON)
打印
因为JSONObject的toString方法做了很友好的格式转化,很容易阅读和理解,像下边那样:
{"allowedPolicies":[],"decision":"Deny","explicitlyDeniedPolicies":[],"implicitlyDeniedPolicies":[]}
fastjson使用
fastJson中java对象 jsonObject jsonArray之间转换
import com.alibaba.fastjson.JSONObject;
for(OrderInfo info : orderInfos){
JSONObject json = (JSONObject)JSONObject.toJSON(info);
System.out.println(json);
}
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。