對branch右鍵 -> 點Select tracked branch (如下圖)
註:Tracked branch這欄就是default remote branch
選擇remote branch就設定完畢
@WebFilter(
filterName="testFilter",
urlPatterns={"/testRest"}
)
public class SpringRequestBodyFilter extends OncePerRequestFilter{
@Override
protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain)
throws ServletException, IOException {
BodyReaderHttpServletRequestWrapper requestWrapper = new BodyReaderHttpServletRequestWrapper(request);
System.out.println("body: " + requestWrapper.getBody());
filterChain.doFilter(requestWrapper, response);
}
}
public class BodyReaderHttpServletRequestWrapper extends HttpServletRequestWrapper{
private final String body;
public BodyReaderHttpServletRequestWrapper(HttpServletRequest request) throws IOException {
super(request);
try(BufferedReader bufferedReader = request.getReader()){
body = request.getReader().lines().collect(Collectors.joining());
}
}
@Override
public ServletInputStream getInputStream() throws IOException {
return new DelegatingServletInputStream(new ByteArrayInputStream(body.getBytes()));
}
@Override
public BufferedReader getReader() throws IOException {
return new BufferedReader(new InputStreamReader(this.getInputStream()));
}
public String getBody() {
return this.body;
}
}
第10行將HttpServletRequest包裝成BodyReaderHttpServletRequestWrapper傳給filter
@SpringBootApplication
@ServletComponentScan("test.annotation.filter")
public class SptringAnnotationFilterApplication {
public static void main(String[] args) {
SpringApplication.run(SptringAnnotationFilterApplication.class, args);
}
}
@WebFilter(
filterName="testFilter",
urlPatterns={"/testRest"}
)
public class SpringAnnotationFilter implements Filter{
@Override
public void init(FilterConfig filterConfig) throws ServletException {
}
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain filterChain)
throws IOException, ServletException {
// do something
filterChain.doFilter(request, response);
}
@Override
public void destroy() {
}
}
SptringAnnotationFilterApplication
@SpringBootApplication
public class SpringBeanConfigFilterApplication {
public static void main(String[] args) {
SpringApplication.run(SpringBeanConfigFilterApplication.class, args);
}
}
@Configuration
public class FilterConfig {
@Bean
public FilterRegistrationBean<Filter> registFilter() {
FilterRegistrationBean<Filter> registration = new FilterRegistrationBean<>();
registration.setFilter(new SpringBeanConfigFilter());
registration.addUrlPatterns("/testRest");
registration.setOrder(2);
registration.setName("testFilter");
return registration;
}
@Bean
public FilterRegistrationBean<Filter> registFilter2() {
FilterRegistrationBean<Filter> registration = new FilterRegistrationBean<>();
registration.setFilter(new SpringBeanConfigFilter2());
registration.addUrlPatterns("/testRest");
registration.setOrder(1);
registration.setName("testFilter2");
return registration;
}
}
public class SpringBeanConfigFilter implements Filter{
@Override
public void init(FilterConfig filterConfig) throws ServletException {
}
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain filterChain)
throws IOException, ServletException {
// do something
filterChain.doFilter(request, response);
}
@Override
public void destroy() {
}
}
public class SpringBeanConfigFilter2 implements Filter{
@Override
public void init(FilterConfig filterConfig) throws ServletException {
}
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain filterChain)
throws IOException, ServletException {
// do something
filterChain.doFilter(request, response);
}
@Override
public void destroy() {
}
}
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<version>2.0.4.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-mongodb</artifactId>
<version>2.0.4.RELEASE</version>
</dependency>
@SpringBootApplication(
exclude = {MongoAutoConfiguration.class, MongoDataAutoConfiguration.class}
)
public class TestApplication {
public static void main(String[] args) {
SpringApplication.run(TestApplication.class, args);
}
}
最重要的就是要設定
exclude = {MongoAutoConfiguration.class, MongoDataAutoConfiguration.class}
mongodb.connect1.uri=mongodb://自己的連線設定1 mongodb.connect1.database=自己的database1 mongodb.connect2.uri=mongodb://自己的連線設定2 mongodb.connect2.database=自己的database2
@Configuration
public class TestConfigurer{
@Bean
@ConfigurationProperties(prefix = "mongodb.connect1")
public MongoProperties getConnectionSetting1() {
return new MongoProperties();
}
@Bean
@ConfigurationProperties(prefix = "mongodb.connect2")
public MongoProperties getConnectionSetting2() {
return new MongoProperties();
}
@Bean(name="Template1")
public MongoTemplate mongoTemplate1(){
MongoProperties p = getConnectionSetting1();
return genMongoTemplateWithMongoProperties(p);
}
@Bean(name="Template2")
public MongoTemplate mongoTemplate2(){
MongoProperties p = getConnectionSetting2();
return genMongoTemplateWithMongoProperties(p);
}
private MongoTemplate genMongoTemplateWithMongoProperties(MongoProperties p){
MongoClientURI uri = new MongoClientURI(p.getUri());
MongoClient client = new MongoClient(uri);
SimpleMongoDbFactory f = new SimpleMongoDbFactory(client, p.getDatabase());
return new MongoTemplate(f);
}
}
@Repository
public class TestDao {
@Autowired
@Qualifier("Template1")
private MongoTemplate mongoTemplate1;
@Autowired
@Qualifier("Template2")
private MongoTemplate mongoTemplate2;
}
long i = new Long(1);
public void mehtod(String... args)
static import java.lang.System.*;
public class HelloWorld {
public static void main(String args[]){
out.println("Hello World.");
}
}
HashMap<String, String> map = new HashMap<>()
try{
}catch(NullPointerException | IllegalArgumentException e){
e.printStackTrace();
}
try(FileReader reader = new FileReader("file")){
}catch(IOException){
e.printStackTrace();
}
在try中的資源,有實作java.lang.AutoCloseable的話| 紅豆 | 1 斤 (600公克) |
| 油 | 6 兩 (250公克) |
| 糖 | 1 斤 (600公克) |
| 糯米 | 2 斤 (1200公克)(1 斤約有10個粽子) |
|
|
|
| 圖一 | 圖二 |