基础概念2

来源:互联网 发布:llmnr linux 编辑:程序博客网 时间:2024/06/05 15:02
swagger的用法  后面写到。

springmvc的使用(http协议的理解)http://blog.csdn.net/walkerjong/article/details/7946109/

@ModelAttribute  对象填充 get/post Form表单提交。

表现形式1、url后面?参数,填充

表现形式2.放在请求的消息体中,消息个事key=value&key=value,设置content-type-=application/x-www-form-urlencoded

@RequestParam     同上ModelAttribute单个参数绑定。
@PathVariable   取Url中参数  /ab/{id}
@RequestBody    取数据中的json等通过流读取
@RequestHeader  消息头

try catch的使用 只对可能有异常的代码做捕获【建议有一个统一的全局捕获】

懒加载的解决【建议用lazy,把不需要的信息设置为空】
【fetch=FetchType.LAZY和EAGER的区分,eager会多发几条sql,lazy会在转json时候报错(session关闭时报错,不然也是多查)】

jpa的用法(hibernate的优化)  多对一,一对多等【通过以上懒加载建议,取关联数据时灵活使用left join fetch强制去取lazy对象】

如何加事物【在方法上加事务,①查询不需要事务②如果在查询方法中加上事务然后又有set值的情况,偶尔会自动update查询的实体】

如何实现异步【@async实现的一步调用,类本身调用是顺序执行的(具体使用参见文档)】

redis的使用【fingerprint:task:${id}:info 使用冒号格式做redis命名,在可视化工具中就是文件夹一层层的,方便归类和查看】

如何做共享式缓存(超时)【Spring中缓存artifactId为spring-boot-starter-cache,在CacheManager 添加一个 RedisCacheManager指定cahe缓存为redis】

@Beanpublic CacheManager cacheManager(StringRedisTemplate redisCacheTemplate) {return new RedisCacheManager(redisCacheTemplate);}
使用swagger、springboot、负载均衡、发现服务、缓存
@EnableSwagger2@SpringBootApplication@EnableFeignClients@EnableDiscoveryClient@EnableCachingpublic class SystemApp {        private static ConfigurableApplicationContext ctx;        public static void main(String[] args) {        ctx = SpringApplication.run(SystemApp.class, args);      }    }

缓存和数据库配合用法@Service@CacheConfig(cacheNames="system:apps")public class AppServiceImpl implements AppService {@Autowiredprivate JpaTemplate jpaTemplate;@Cacheable(key="'system:apps:' + #key")@Overridepublic SysApp getByKey(String key) {String sql = "from SysApp a where a.key = ?0";return jpaTemplate.findOne(sql, key);}       @CacheEvict(key="'system:apps:' + #key")    @Transactional    @Override    public void delete(Long id, String key) {        SysApp temp = getById(id);        if(temp != null) {            jpaTemplate.delete(temp);        }    }

0 0