Controller层常用标签
@Controller
- springmvc 控制层 ,可用于视图跳转
@RestController
- springmvc 控制层 ,使用rest风格编码,用于json格式数据请
@RequestMapping
- 作用Controller类和方法,用于映射,或指定请求类型的
- 例如:@RequestMapping(value = “/alluser” , method = RequestMethod.GET)
service业务层常用标签
@Service(“userService”)
- 用来标识service
@Transactional
- 用于开启事务
entity
@Entity 用例标识实体
@Table(name = “aaaa”) 映射实体和表名
- 以下三个是用来标识主键的,基于Hibernate主键策略生成
@Id
@GeneratedValue(generator = “faceset_generator”)
@GenericGenerator(name = “faceset_generator”, strategy = “uuid”)
@DateTimeFormat(pattern=“yyyy-MM-dd HH:mm:ss”)
- 用于指定时间日期格式的解析格式
@JsonFormat(timezone = “GMT+8”,pattern = “yyyy-MM-dd HH:mm:ss”)
- 用于指定json解析时间日期格式
@Column(name=“xxx”)
- 用来映射实体字段和表字段
dao
@Repository
- 标识持久层
功能性标签
@Autowired
- 用来注入的bean(spring的依赖注入(di))
@Bean
- 用于实体或者方法返回的实体被spring容器加载管理
@Bean
public TextUtil initTextUtil() {
return new TextUtil();
}`
@Component(“xxxx”)
- 用于自定义组件被spring容器加载管理
- 把共性业务封装成组件,好处一堆,自行理解
/**
* 自定义组件接口
**/
public interface CreateCodeInterface {
public StringBuffer CreateCode(String tablename, String classname) throws Exception ;
}
/**
* 自定义组件实现类
**/
@Component("createSearch")
public class CreateSearch implements CreateCodeInterface {
@Autowired
private CoreService coreService;
@Override
public StringBuffer CreateCode(String tablename, String classname) throws Exception {
//...自定义的组件功能
}
}
@Slf4j
- 如果不想每次都写private final Logger logger = LoggerFactory.getLogger(当前类名.class);
可以用注解@Slf4j; - 前提是集成并开启Slf4j日志管理
@Configuration
- 用于定义配置类,可替换xml配置文件,
被注解的类内部包含有一个或多个被@Bean注解的方法,
这些方法将会被AnnotationConfigApplicationContext
或AnnotationConfigWebApplicationContext类进行扫描,
并用于构建bean定义,初始化Spring容器 - 总结一句话:被上述Configuration标签修饰的类,就是一个xml文件
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.socket.server.standard.ServerEndpointExporter;
/**
* 此类可看成WebSocket xml
*/
@Configuration
public class WebSocketConfig {
/**
* websocket的核心对象
* @return
*/
@Bean
public ServerEndpointExporter serverEndpointExporter() {
return new ServerEndpointExporter();
}
}
@EnableAutoConfiguration
- 就是去classpath中搜索所有META-INF/spring.factories配置文件,并加载配置项到spring容器
- 实现过程原理(抄袭某个大神博客的原话)–站在大神的肩膀上看世界
- 从classpath中搜索所有META-INF/spring.factories配置文件然后,将其中org.springframework.boot.autoconfigure.EnableAutoConfiguration的key对应的配置项加载到spring容器
- 只有spring.boot.enableautoconfiguration为true(默认为true)的时候,才启用自动配置
- @EnableAutoConfiguration还可以进行排除,排除方式有2中,一是根据class来排除(exclude),二是根据class name(excludeName)来排除
@ComponentScan
- 用于扫描指定包下的所有组件